C#中的隐藏目录

hidden directory in C#

我在F盘做了一个隐藏目录,并命名为"File"。

此代码显示它是隐藏文件:Console.WriteLine(dc.Attributes);

但是当我使用 DirectoryInfo 属性来检查它是否是一个隐藏文件时,它不起作用。

代码如下:

DirectoryInfo dc = new DirectoryInfo(@"F:\File");
        Console.WriteLine(dc.Attributes);
        if (dc.Attributes == FileAttributes.Hidden)
        {
            Console.WriteLine("HIDDEN");
        }
        else
        {
            Console.WriteLine("NOT HIDDEN");
        }

写成NOT HIDDEN。我该怎么办?

提前致谢

问题是属性值是多个属性的按位组合。

要测试是否设置了FileAttributes.Hidden属性,您需要这样做:

if ((dc.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden)

我建议您阅读有关 how bitwise combinations work 的内容。

如果您使用的是 .NET 4 及更高版本,请执行:

dir.Attributes.HasFlag(FileAttributes.Hidden)