隐藏文件夹C#

Kim*_*ho6 2 c#

可能重复:
C# - 获取不包括隐藏文件的文件列表

我如何确保我只获得未隐藏的文件夹?

这是我所知道但它返回所有文件夹.

string[] folders = Directory.GetDirectories(path);
Run Code Online (Sandbox Code Playgroud)

Thi*_*ter 9

您可以使用DirectoryInfo检查文件夹是否隐藏:

string[] folders = Directory.GetDirectories(path);
foreach (string subFolder in folders) {
 string folder = Path.Combine(path, subFolder);
 DirectoryInfo info = new DirectoryInfo(folder);
 if ((info.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden) {
  // do something with your non-hidden folder here
 }
}
Run Code Online (Sandbox Code Playgroud)

另一种解决方案是以下单线:

var folders = new DirectoryInfo(path).GetDirectories().Where(x => (x.Attributes & FileAttributes.Hidden) == 0);
Run Code Online (Sandbox Code Playgroud)

在这种情况下folders是一个IEnumberable<DirectoryInfo>.如果您想要文件而不是目录,只需使用GetFiles替换GetDirectories即可.


Rob*_*itt 5

您需要循环目录并检查该目录或文件的(属性

例子:

foreach (DirectoryInfo Dir in Directory.GetDirectories(path))
{
    if (!Dir.Attributes.HasFlag(FileAttributes.Hidden))
    {
        //Add to List<DirectoryInfo>
    }
}
Run Code Online (Sandbox Code Playgroud)