none
como leer todasl as carpetas y subcarpetas de la ruta de Mis documentos u otras que son del sistema window

    Question

  • Hola a todos ando viendo como leer todas las carpetas y archivos q contengan ese nodo y mostrarlos en un treeview pero me sale error de acceso osea me niega la lectura de la informacion hasta el momento e probado con esto.

    string ruta= Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments); luego esto lo meto en un arrray para obtener todo pero me lansa ese error:(

    string[] archivos = Directory.GetFiles(rus, "*.*", SearchOption.AllDirectories);

    Tuesday, April 05, 2011 3:23 PM

Answers

All replies

  • hola

    has validado a cual de todos My Documents esta intentando leer

    recueda que cada usuario tiene el suyo, deberias verificar que sea el del usuario con el cual estas autenticado en windows el que quiera leer

    si intentas leer algun otro quizas por temas de seguridad no puedas hacerlo

    si haces

    MessageBox.Show(Environment.SpecialFolder.MyDocuments);

    la carpeta hace alucion a la del usuario con el cual te has logueado en windows

    saludos


    Leandro Tuttini

    Blog
    Buenos Aires
    Argentina
    Tuesday, April 05, 2011 3:34 PM
  • Porque no haces directamente:

    string[] archivos = Directory.GetFiles(Environment.SpecialFolder.MyDocuments, "*.*", SearchOption.AllDirectories);


    Vicente Cartas Espinel - MVP XNA/DirectX

    Twitter - VicenteCartas

    Blog about C# and XNA Development

    Blog about Role Playing Games

    Tuesday, April 05, 2011 4:04 PM
  • List<string> rutas = new List<string>();
                string ru = Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);
                rutas.Add(ru);
                ru = Environment.GetFolderPath(Environment.SpecialFolder.Desktop);
                rutas.Add(ru);

    SelectQuery quer = new SelectQuery("Win32_UserAccount", "Domain='"+Environment.UserDomainName.ToString()+"'");
                            List<string> obs=new List<string>();
                            try
                            {
                                ManagementObjectSearcher se = new ManagementObjectSearcher(quer);
                                foreach (ManagementObject mObject in se.Get())
                                    obs.Add(mObject["Name"].ToString());
                            }
                            catch(Exception ex)
                            { Console.WriteLine(ex.Message); }
                            DirectoryInfo dir1 = new DirectoryInfo(@"C:\\Users\\Victs23\\Documents\\Mis vídeos");
                            DirectorySecurity dirs = dir1.GetAccessControl();
                            string user=Environment.UserDomainName+"\\"+obs[2];
                            dirs.AddAccessRule(new FileSystemAccessRule(user, FileSystemRights.Modify, AccessControlType.Allow));
                            dir1.SetAccessControl(dirs);

    utilice todo eso para obtener todo lo del usuario activo y el dominio y luego darle permiso total sobre esa carpeta porq es la que me sale q no tengo acceso a ella

    el metodo para obtener todas las carpetas es est

    string[] archivos = Directory.GetFiles(rus, "*.*", SearchOption.AllDirectories);
                            string[] directorios = Directory.GetDirectories(rutas[i], "*.*", SearchOption.AllDirectories);
                           y este es todo el codigo pero me lansa esos errores:( de q no tengo acceso aun y eso que se supone ya le di acceso total a esa cuenta de usuario

    Tuesday, April 05, 2011 9:58 PM