Como saber permisos de carpetas

Iniciado por GameAndWatch, 24 Diciembre 2011, 08:33 AM

0 Miembros y 1 Visitante están viendo este tema.

GameAndWatch

¡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!

ThunderCls

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
-[ "...I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/

GameAndWatch

#2
¡Gracias por responder! :D
Pues estoy utilizando la función System.IO.Directory.GetFiles. El código es este:

Código (vbnet) [Seleccionar]
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... :-(

ThunderCls

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
-[ "...I can only show you the door. You're the one that has to walk through it." – Morpheus (The Matrix) ]-
http://reversec0de.wordpress.com
https://github.com/ThunderCls/

GameAndWatch

¡¡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.