C#中的隐藏目录

时间:2015-01-24 19:08:35

标签: c# directory console-application

我在驱动器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。我该怎么办?

提前致谢

2 个答案:

答案 0 :(得分:2)

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

要测试是否设置了FileAttributes.Hidden属性,您需要执行以下操作:

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

我建议你阅读how bitwise combinations work

答案 1 :(得分:2)

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

dir.Attributes.HasFlag(FileAttributes.Hidden)