2008-09-18 9 views
33

¿Hay alguna manera de que pueda crear mediante programación (y creo que acceder) carpetas ocultas en un dispositivo de almacenamiento desde C#?Crear carpetas ocultas

+1

reetiquetado, ya que esto no es una cuestión específica del idioma –

Respuesta

84
using System.IO; 

string path = @"c:\folders\newfolder"; // or whatever 
if (!Directory.Exists(path)) 
{ 
DirectoryInfo di = Directory.CreateDirectory(path); 
di.Attributes = FileAttributes.Directory | FileAttributes.Hidden; 
} 
+8

primer resultado en Google C# –

+7

Ahora usted es el primer resultado en Google. – KDecker

24

Sí, puedes. Crea el directorio de forma normal y luego configura los atributos en él. P.ej.

DirectoryInfo di = new DirectoryInfo(@"C:\SomeDirectory"); 

//See if directory has hidden flag, if not, make hidden 
if ((di.Attributes & FileAttributes.Hidden) != FileAttributes.Hidden) 
{ 
    //Add Hidden flag  
    di.Attributes |= FileAttributes.Hidden;  
} 
+0

Si la cláusula se puede reducir a 'if (! Di.Attributes.HasFlag (FileAttributes.Hidden))' – schoetbi

4
string path = @"c:\folders\newfolder"; // or whatever 
if (!System.IO.Directory.Exists(path)) 
{ 
    DirectoryInfo di = Directory.CreateDirectory(path); 
    di.Attributes = FileAttributes.Directory | FileAttributes.Hidden; 
} 

De here.

6
CreateHiddenFolder(string name) 
{ 
    DirectoryInfo di = new DirectoryInfo(name); 
    di.Create(); 
    di.Attributes |= FileAttributes.Hidden; 
} 
-2

Código para obtener solo la ruta de las carpetas raíz.

Como Si tenemos C:/Prueba/ C:/Prueba/Abc C:/Prueba/xyz C:/Prueba2/ C: ruta/MNP

le proporcione carpetas raíz/Prueba2 es decir C:/Prueba/ C:/Prueba2/

  int index = 0; 
      while (index < lst.Count) 
      { 
       My obj = lst[index]; 
       lst.RemoveAll(a => a.Path.StartsWith(obj.Path)); 
       lst.Insert(index, obj); 
       index++;      
      } 
+6

Los volcados de código sin explicación rara vez son útiles. Por favor agrega un contexto a esto. (Además, le puede interesar saber que ha respondido una publicación que tiene más de 6 años ...) – Chris