¡Hola! :D
Estoy creando un buscador de archivos que además te guarde en un txt todos los archivos encontrados. Con un poco de sudor,lo conseguí. ;D Pero me dí cuenta de un problema. No puedo buscar donde no tengo permisos.
¿Alguien sabe como puedo saber si tengo permisos sobre una carpeta? :huh:
Mi intención es que buscara en la raiz de un disco(D: por ejemplo) pero me topo con la carpeta de System Information y la verdad es que molesta un poco que se cuelgue por esto...
Tambien me sirve si existe una manera de buscar aunque no tenga permisos XD. :xD
¡Gracias de antemano por la respuesta!
Cita de: GameAndWatch en 24 Diciembre 2011, 08:33 AM
Mi intención es que buscara en la raiz de un disco(D: por ejemplo) pero me topo con la carpeta de System Information y la verdad es que molesta un poco que se cuelgue por esto...
Tambien me sirve si existe una manera de buscar aunque no tenga permisos XD. :xD
Pues no se como estaras haciendo la busqueda (tal vez si pusieras algun code), pero no te entiendo bien. Se te cuelga la aplicacion al llegar a estas carpetas?, porque no deberia. En estos casos no te deja buscar en ellas, pero lo que hace es pasarla por alto y continuar con las demas. Igual puedes guiarte por aqui
http://foro.elhacker.net/programacion_cc/source_listando_directorios_y_archivos_en_cc-t166359.0.html
Cita de: GameAndWatch en 24 Diciembre 2011, 08:33 AM
¿Alguien sabe como puedo saber si tengo permisos sobre una carpeta? :huh:
Con esto te servira
http://msdn.microsoft.com/en-us/library/aa446639%28v=VS.85%29.aspx
Saludos
¡Gracias por responder! :D
Pues estoy utilizando la función System.IO.Directory.GetFiles. El código es este:
Dim ruta_madre As Array
ruta_madre = System.IO.Directory.GetFiles(ruta)
For Each archivos_madre As String In ruta_madre
ListBox1.Items.Add(archivos_madre.ToString)
'funcion para escribir en el txt
Dim oSW As New IO.StreamWriter(salvable, True)
Dim Linea As String = archivos_madre.ToString & vbNewLine
oSW.WriteLine(Linea)
oSW.Flush()
oSW.Dispose()
Next
Do
For Each archivos As String In System.IO.Directory.GetFiles(ruta & folders(x).Name, _
"*", _
System.IO.SearchOption.AllDirectories)
ListBox1.Items.Add(archivos.ToString)
Dim oSW As New IO.StreamWriter(salvable, True)
Dim Linea As String = archivos.ToString & vbNewLine
oSW.WriteLine(Linea)
oSW.Flush()
oSW.Dispose()
Next
x = x + 1
Loop Until x = tope
El problema es que con esta función si encuentra la carpeta y al no tener permisos da error y para de listar(sale del bucle).
He probado lo de GetFileSecurity,pero no me reconoce la variable... :-(
Upss...al parecer ambos hemos cometido un error...
-El codigo que te puse arriba es para c++ (no se porque pense que estaba en el foro de c++ cuando conteste al tema)... :P
Cita de: GameAndWatch en 25 Diciembre 2011, 08:53 AM
Pues estoy utilizando la función System.IO.Directory.GetFiles. El código es este:
-No aclarastes que estabas en .NET, y este foro es de VB por lo que el mejor lugar donde pueden aclararte mejor tu problema para este tema seria aqui:
http://foro.elhacker.net/net-b62.0/
Cita de: GameAndWatch en 25 Diciembre 2011, 08:53 AM
El problema es que con esta función si encuentra la carpeta y al no tener permisos da error y para de listar(sale del bucle).
Por otra parte, de .NET no te puedo decir mucho, solo que, en tu caso específico deberias añadir un manejador de errores en tu codigo para evitar que se interrumpa la ejecucion normal de la aplicacion al ocurrir una excepcion (lo que te esta sucediendo), puedes leer algo de eso por aqui:
http://www.ajpdsoft.com/modules.php?name=News&file=article&sid=433
Cita de: GameAndWatch en 25 Diciembre 2011, 08:53 AM
He probado lo de GetFileSecurity,pero no me reconoce la variable... :-(
Igual, para poder usar la funcion GetFileSecurity (Win32 API function) en .NET debes hacer las respectivas declaraciones, puedes guiarte por aqui
http://www.webtropy.com/articles/art9-1.asp?f=GetFileSecurity
Todo lo que hay que hacer es buscar...y buscar bien :rolleyes:
Saludos
¡¡argh!! No me dí cuenta del error.Pensé que eran lo mismo(ya veo que no,que se parecen...me paso lo mismo con Java y javascript XD)
Vale,miraré en tu ayuda y si no lo consigo preguntaré en ese foro. :D
Y gracias por contestarme y perdón por las molestias.