67 votes

C # - Obtenir une liste de fichiers excluant ceux qui sont cachés

Directory.GetFiles() renvoie tous les fichiers, même ceux qui sont marqués comme cachés. Existe-t-il un moyen d'obtenir une liste de fichiers excluant les fichiers cachés?

105voto

Austin Salonen Points 28057

Cela devrait fonctionner pour vous:

 DirectoryInfo directory = new DirectoryInfo(@"C:\temp");
FileInfo[] files = directory.GetFiles();

var filtered = files.Select(f => f)
                    .Where(f => (f.Attributes & FileAttributes.Hidden) == 0);

foreach (var f in filtered)
{
    Debug.WriteLine(f);
}
 

14voto

Feedback_looper Points 51
// check whether a file is hidden
bool isHidden = ((File.GetAttributes(filePath) & FileAttributes.Hidden) == FileAttributes.Hidden);

8voto

Jerome Laban Points 1856

En utilisant .NET 4.0 et Directory.EnumerateDirectories, vous pouvez utiliser cette construction:

 var hiddenFilesQuery = from file in Directory.EnumerateDirectories(@"c:\temp")
                       let info = new FileInfo(file)
                       where (info.Attributes & FileAttributes.Hidden) == 0
                       select file;
 

C'est fondamentalement la même chose que l'autre réponse, sauf que Directory.EnumerateDirectories est un peu plus paresseux. Ce n'est cependant pas très utile si vous énumérez tout.

(La let est ici pour que la requête soit plus lisible).

2voto

jesus gilbert Points 1

si utilisation utiliser:

var filtered = files.Select(f => f) .Where(f => (f.Attributes & FileAttributes.Hidden) == 0);

ceci ne trouve aucun fichier caché, vous pouvez donc utiliser:

var filtered = files.Select(f => f) .Where(f => (f.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden);

c'est seulement pour lire le fichier caché

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X