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)
我在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)