Autor
|
Tema: Error con mi codigo (Leído 9,741 veces)
|
Choclito
Desconectado
Mensajes: 99
|
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:\" Try If rdbuscar.Checked = True Then a = InputBox("Escriba el nombre del archivo a buscar", "Ingrese Datos") My.Forms.buscando.Show() For Each b As String In My.Computer.FileSystem.GetFiles("G:\", 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 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
|
|
« Última modificación: 5 Noviembre 2010, 01:23 am por [D4N93R] »
|
En línea
|
|
|
|
[D4N93R]
Wiki
Desconectado
Mensajes: 1.646
My software never has bugs. Its just features!
|
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
Mensajes: 99
|
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: For Each b As String In My.Computer.FileSystem.GetFiles("G:\", FileIO.SearchOption.SearchAllSubDirectories, a)
|
|
|
En línea
|
|
|
|
[D4N93R]
Wiki
Desconectado
Mensajes: 1.646
My software never has bugs. Its just features!
|
Ahh!! lo que pasa es que no tienes acceso a ese directorio 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
Mensajes: 502
|
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: SearchOption.TopDirectoryOnly
luego con un foreach los recorres y haces un: GetFiles
con 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
Mensajes: 1.646
My software never has bugs. Its just features!
|
Sí, un método recursivo con lo que te dice 43H4FH44H45H4CH49H56H45H sería buena implementación.
|
|
|
En línea
|
|
|
|
|
jacj0102
Desconectado
Mensajes: 37
"Camina hacia el futuro!!!"
|
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
Mensajes: 502
|
De pasada: Imports System.IO Module Module1 Sub Main() Dim dirInfo As New DirectoryInfo("F:\\") Dim dirsInfo() As DirectoryInfo = dirInfo.GetDirectories("*.*", SearchOption.TopDirectoryOnly) For Each di As DirectoryInfo In dirsInfo Try Console.WriteLine(di.FullName) Dim filesInfo() As FileInfo = di.GetFiles("*.*", SearchOption.AllDirectories) For Each fi As FileInfo In filesInfo Console.WriteLine(fi.FullName) Next Catch ex As Exception Console.WriteLine(ex.ToString()) Console.Read() End Try Console.Read() Next Console.Read() End Sub 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
|
|
|
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
Mensajes: 37
"Camina hacia el futuro!!!"
|
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: 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"
|
|
|
|
|