我在驱动器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
。我该怎么办?
提前致谢
答案 0 :(得分:2)
问题是属性值是多个属性的按位组合。
要测试是否设置了FileAttributes.Hidden
属性,您需要执行以下操作:
if ((dc.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden)
答案 1 :(得分:2)
如果您使用的是.NET 4及更高版本,请执行以下操作:
dir.Attributes.HasFlag(FileAttributes.Hidden)