Pergunta
Existe alguma maneira de criar pastas ocultas programaticamente (e acho) em um dispositivo de armazenamento de dentro de C#?
Solução
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;
}
Outras dicas
Sim você pode. Crie o diretório normalmente, basta definir os atributos nele. Por exemplo
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;
}
CreateHiddenFolder(string name)
{
DirectoryInfo di = new DirectoryInfo(name);
di.Create();
di.Attributes |= FileAttributes.Hidden;
}
string path = @"c:\folders\newfolder"; // or whatever
if (!System.IO.Directory.Exists(path))
{
DirectoryInfo di = Directory.CreateDirectory(path);
di.Attributes = FileAttributes.Directory | FileAttributes.Hidden;
}
A partir de aqui.
Código para obter apenas o caminho das pastas raiz.
Como se tivéssemos c:/teste/c:/test/abc c:/teste/xyz c:/test2/c:/test2/mnp
Ele retornará as pastas raiz caminho, ou seja, c:/test/c:/test2/
int index = 0;
while (index < lst.Count)
{
My obj = lst[index];
lst.RemoveAll(a => a.Path.StartsWith(obj.Path));
lst.Insert(index, obj );
index++;
}
Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow