elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Estamos en la red social de Mastodon


+  Foro de elhacker.net
|-+  Programación
| |-+  Programación General
| | |-+  .NET (C#, VB.NET, ASP) (Moderador: kub0x)
| | | |-+  Error con mi codigo
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: Error con mi codigo  (Leído 9,428 veces)
Choclito

Desconectado Desconectado

Mensajes: 99



Ver Perfil
Error con mi codigo
« en: 5 Noviembre 2010, 01:12 am »

Como hago para obiar el error "Acceso denegado a la ruta de acceso 'G:\System Volume Information\'.", si deseo buscar un archivo que se encuentra en la unidad "G:\"


Código
  1. Try
  2.            If rdbuscar.Checked = True Then
  3.                a = InputBox("Escriba el nombre del archivo a buscar", "Ingrese Datos")
  4.                My.Forms.buscando.Show()
  5.                For Each b As String In My.Computer.FileSystem.GetFiles("G:\", FileIO.SearchOption.SearchAllSubDirectories, a)
  6.                    TextBox1.Text = b
  7.                    acu = b
  8.                    If rdbfilestream.Checked = True Then
  9.                        filestren()
  10.                        My.Forms.buscando.Close()
  11.                        Exit For
  12.                    End If
  13.                    If rdbstreamreader.Checked = True Then
  14.                        streanreader()
  15.                        My.Forms.buscando.Close()
  16.                        Exit For
  17.                    End If
  18.                Next
  19.            End If
  20.            If rdlistar.Checked = True Then
  21.                opc.ShowDialog()
  22.                TextBox1.Text = opc.FileName
  23.                acu = opc.FileName
  24.                If rdbfilestream.Checked = True Then
  25.                    filestren()
  26.                End If
  27.                If rdbstreamreader.Checked = True Then
  28.                    streanreader()
  29.                End If
  30.            End If
  31.        Catch ex As Exception
  32.  
  33.        End Try


« Última modificación: 5 Noviembre 2010, 01:23 am por [D4N93R] » En línea

[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
Re: Error con mi codigo
« Respuesta #1 en: 5 Noviembre 2010, 01:28 am »

Puedes probar antes de esa línea en cuestión:

Directory.Exists(path).

Siendo Path la ruta "G:\", debería retornar false si no existe.

Unos consejos:
  • Corrige las faltas de ortografía, por ejemplo la palabra STREAM en los nombres de variable.
  • Es mejor si en la etiqueta code le le pones el lenguaje en adecuado, en este caso vbnet. Quedaría así [code=vbnet][/code]
  • Utiliza camel case o pascal case.

Un saludo!


En línea

Choclito

Desconectado Desconectado

Mensajes: 99



Ver Perfil
Re: Error con mi codigo
« Respuesta #2 en: 5 Noviembre 2010, 02:10 am »

gracias [D4N93R]  pero lo que sucede es que el archivo si existe pero cuando el algoritmo esta en plena busqueda sin antes encontrar el archivo me bota el error "Acceso denegado a la ruta de acceso 'G:\System Volume Information\'." como podria evitar dicho error gracias de antemano

el error aparece en este lugar del codigo:
Código:
For Each b As String In My.Computer.FileSystem.GetFiles("G:\", FileIO.SearchOption.SearchAllSubDirectories, a)
En línea

[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
Re: Error con mi codigo
« Respuesta #3 en: 5 Noviembre 2010, 03:21 am »

Ahh!! lo que pasa es que no tienes acceso a ese directorio :P

Uhm, Intenta usar DirectoryInfo.GetFiles en vez de y.Computer.FileSystem.GetFiles

Y no deber'ia dar error, a menos de que hagas algo con ese file que no tienes permisos.

Inténtalo y dime que tal.
En línea

43H4FH44H45H4CH49H56H45H
Wiki

Desconectado Desconectado

Mensajes: 502



Ver Perfil
Re: Error con mi codigo
« Respuesta #4 en: 5 Noviembre 2010, 04:14 am »

Como hago para obiar el error "Acceso denegado a la ruta de acceso 'G:\System Volume Information\'.", si deseo buscar un archivo que se encuentra en la unidad "G:\"
El code que utilizas, no solamente te dara errores con esa carpeta, si alguna vez existe alguna otra que este cifrada puede fallar toda la búsqueda que realizes, un modo de solucionarlo es listando primero los directorios de la ruta que escogas, debes hacerlo con:
Código
  1. SearchOption.TopDirectoryOnly
luego con un foreach los recorres y haces un:
Código
  1. GetFiles
con
Código
  1. SearchOption.AllDirectories
a cada uno de los directorios encontrados, siempre utilizando try - catch.

De ese modo puedes solucionar tu problema, de igual modo puede evitarse problemas con algun directorio o archivo inaccesible aplicando este método de una formas mas elaborada.
En línea


-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W
[D4N93R]
Wiki

Desconectado Desconectado

Mensajes: 1.646


My software never has bugs. Its just features!


Ver Perfil WWW
Re: Error con mi codigo
« Respuesta #5 en: 5 Noviembre 2010, 13:59 pm »

Sí, un método recursivo con lo que te dice 43H4FH44H45H4CH49H56H45H sería buena implementación.
En línea

jlrvpuma

Desconectado Desconectado

Mensajes: 21



Ver Perfil
Re: Error con mi codigo
« Respuesta #6 en: 5 Noviembre 2010, 21:14 pm »

que SO es? vista? win7? si es así es posible que ocupes crearte un archivo manifest, es que en vista y posteriores la segridad se trata diferente...para comprobar lo dicho ejecuta como administrador tu aplicación o abre el VS como administrador y ejecuta tu código y si es por eso podrás acceder al archivo sin problemas.
Mira aquí:
http://stackoverflow.com/questions/1815228/c-do-i-need-manifest-files
esto tal vez esto te sirva:
http://msdn.microsoft.com/en-us/library/xhctdw55.aspx
« Última modificación: 5 Noviembre 2010, 21:32 pm por jlrvpuma » En línea

jacj0102

Desconectado Desconectado

Mensajes: 37


"Camina hacia el futuro!!!"


Ver Perfil
Re: Error con mi codigo
« Respuesta #7 en: 6 Noviembre 2010, 02:30 am »

Gracias 43H4FH44H45H4CH49H56H45H y [D4N93R]. Pero no se si me podrian ayudar a implementarlo en el codigo, si pude entenderles pero no se como implementarlo porfavor ayudenme es eso gracias.
En línea

"La Raiz del Estudio es Amargo, Pero el Fruto es Dulce"
"Corrige al sabio y se hara mas sabio, corrige al necio y te lo echara de enemigo"
43H4FH44H45H4CH49H56H45H
Wiki

Desconectado Desconectado

Mensajes: 502



Ver Perfil
Re: Error con mi codigo
« Respuesta #8 en: 6 Noviembre 2010, 04:09 am »

De pasada:

Código
  1. Imports System.IO
  2. Module Module1
  3.    Sub Main()
  4.        Dim dirInfo As New DirectoryInfo("F:\\")
  5.        Dim dirsInfo() As DirectoryInfo = dirInfo.GetDirectories("*.*", SearchOption.TopDirectoryOnly)
  6.        For Each di As DirectoryInfo In dirsInfo
  7.            Try
  8.                Console.WriteLine(di.FullName)
  9.                Dim filesInfo() As FileInfo = di.GetFiles("*.*", SearchOption.AllDirectories)
  10.                For Each fi As FileInfo In filesInfo
  11.                    Console.WriteLine(fi.FullName)
  12.                Next
  13.            Catch ex As Exception
  14.                Console.WriteLine(ex.ToString())
  15.                Console.Read()
  16.            End Try
  17.            Console.Read()
  18.        Next
  19.        Console.Read()
  20.    End Sub
  21. End Module

Puse varios Console.Read() para que pueda verse en la consola el directorio que se estas listando y si hay alguno que no sea accesible.
Saludos  :P
En línea


-R IP
:0100
-A 100 
2826:0100 MOV AH,09
2826:0102 MOV DX,109
2826:0105 INT 21
2826:0105 MOV AH,08
2826:0105 INT 21
2826:0107 INT 20
2826:0109 DB 'MI NICK ES CODELIVE.$' 
2826:0127 
-R BX
:0000
-R CX
:20
-N CODELIVE.COM
-W
jacj0102

Desconectado Desconectado

Mensajes: 37


"Camina hacia el futuro!!!"


Ver Perfil
Re: Error con mi codigo
« Respuesta #9 en: 13 Noviembre 2010, 17:17 pm »

Gracias 43H4FH44H45H4CH49H56H45H es una gran ayuda la tuya pero ahora mi gran problema es que tu codigo me muestra las carpetas que contienen el error como podria implementarlo para que me obie dicho error. Porfavor soy nuevo en esta cituacion espero me entiendan ahi les mando todo el codigo:




Código:
Imports System.IO
Imports System.Text
Public Class Form1
    Dim a, c, acu

    Private Shared Sub add(ByVal g As FileStream, ByVal value As String)
        Dim f As Byte() = New UTF8Encoding(False).GetBytes(value)
        g.Write(f, 0, f.Length)
    End Sub
    Sub filestren()
        Try
            Dim fs As New FileStream(acu, FileMode.Open, FileAccess.Read)
            Dim datos(1024) As Byte
            Dim enc As New System.Text.UTF8Encoding
            Dim texto As New System.Text.StringBuilder

            While fs.Read(datos, 0, 1024) > 0
                texto.Append(enc.GetString(datos))
                RichTextBox1.Text = enc.GetString(datos)
            End While
            fs.Close()
        Catch ex As Exception

        End Try
    End Sub
    Sub streanreader()
        Dim a As String = (acu)
        Try
            Using f As StreamReader = File.OpenText(a)
                Dim c As String
                c = f.ReadLine()
                While Not c Is Nothing
                    RichTextBox1.Text = c
                    c = f.ReadLine()
                End While
                f.Close()
            End Using
        Catch ex As Exception

        End Try
    End Sub
    Sub filestreanescritura()
        Dim a As String = acu
        If File.Exists(a) Then
            File.Delete(a)
        End If
        Dim b As FileStream = File.Create(a)
        add(b, acu1)
        RichTextBox1.Text = acu1
        b.Close()
    End Sub
    Sub streanwrite()
        Dim a As String = (acu)
        Using b As StreamWriter = File.CreateText(a)
            b.WriteLine(acu1)
            RichTextBox1.Text = acu1
            b.Close()
        End Using
    End Sub

    Public Sub LlenarUnidades()
        Dim Unidades(), Unidad As String
        Unidades = Directory.GetLogicalDrives
        For Each Unidad In Unidades
            ComboBox1.Items.Add(Unidad)
        Next
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        'Try
        If rdbuscar.Checked = True Then
            a = InputBox("Escriba el nombre del archivo a buscar", "Ingrese Datos")
            If a = "" Then
                MsgBox("Cadena vacia")
            Else
                My.Forms.buscando.Show()
                For Each b As String In My.Computer.FileSystem.GetFiles(ComboBox1.Text, FileIO.SearchOption.SearchAllSubDirectories, a)
                    TextBox1.Text = b
                    acu = b
                    If rdbfilestream.Checked = True Then
                        filestren()
                        My.Forms.buscando.Close()
                        Exit For
                    End If
                    If rdbstreamreader.Checked = True Then
                        streanreader()
                        My.Forms.buscando.Close()
                        Exit For
                    End If
                Next
            End If
        End If
        If rdlistar.Checked = True Then

            opc.ShowDialog()
            TextBox1.Text = opc.FileName
            acu = opc.FileName
            If rdbfilestream.Checked = True Then
                filestren()
            End If
            If rdbstreamreader.Checked = True Then
                streanreader()
            End If
        End If
        'Catch ex As Exception

        'End Try
    End Sub

    Private Sub Form1_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Click
        'Close()
    End Sub

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        opc.Filter = "(*.txt)|*.txt|(*.doc)|*.doc|(*.pdf)|*.pdf|(*.log)|*.log|(*.inf)|*.inf|(*.ini)|*.ini"
        LlenarUnidades()
    End Sub
    Dim acu1
    Private Sub RadioButton3_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton3.CheckedChanged
        acu1 = InputBox("Escriba el texto a escribir en el archivo seleccionado", "Ingrese Datos ''FileStream''")
        streanwrite()
    End Sub
   
    Private Sub RadioButton4_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RadioButton4.CheckedChanged
        acu1 = InputBox("Escriba el texto a escribir en el archivo seleccionado", "Ingrese Datos ''StreamReader''")
        filestreanescritura()
    End Sub

    Private Sub RichTextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles RichTextBox1.TextChanged
       
    End Sub

    Private Sub TextBox1_TextChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles TextBox1.TextChanged
        RadioButton3.Enabled = True
        RadioButton4.Enabled = True
    End Sub

    Private Sub rdbfilestream_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rdbfilestream.CheckedChanged
        Button1.Enabled = True
    End Sub

    Private Sub rdbstreamreader_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rdbstreamreader.CheckedChanged
        Button1.Enabled = True
    End Sub

    Private Sub rdbuscar_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rdbuscar.CheckedChanged
        rdbfilestream.Enabled = True
        rdbstreamreader.Enabled = True
        ComboBox1.Enabled = True
    End Sub

    Private Sub rdlistar_CheckedChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles rdlistar.CheckedChanged
        rdbfilestream.Enabled = True
        rdbstreamreader.Enabled = True
        ComboBox1.Enabled = False
    End Sub
End Class



Espero me ayuden gracias de antemano.
En línea

"La Raiz del Estudio es Amargo, Pero el Fruto es Dulce"
"Corrige al sabio y se hara mas sabio, corrige al necio y te lo echara de enemigo"
Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

Mensajes similares
Asunto Iniciado por Respuestas Vistas Último mensaje
Error en codigo C
Programación C/C++
Søra 8 4,484 Último mensaje 14 Diciembre 2010, 18:30 pm
por Garfield07
WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines