C# 判断一个文件是不是隐藏文件,在获取文件时如何区分文件是否隐藏,有时我们并不想获取隐藏的文件,如何剔除?
我们可以据据FileInfo.Attributes来获取文件的属性,然后判断对比下看文件的属性是否包含Hidden属性,如果有那么这个文件就是隐藏文件。
==========代码开始==========
string path = @"C:\Users\Administrator\Desktop\";
string[] array = Directory.GetFiles(
path,
"*.*",
SearchOption.TopDirectoryOnly);
foreach (string fileName in array)
{
FileInfo fileInfo = new FileInfo(fileName);
FileAttributes attributes = fileInfo.Attributes & FileAttributes.Hidden;
if (attributes == FileAttributes.Hidden)
{
//TO DO
}
}
==========代码结束==========
//提供文件和目录的属性。
public enum FileAttributes
{
//此文件是只读的。
ReadOnly = 1,
//文件是隐藏的,因此没有包括在普通的目录列表中。
Hidden = 2,
//此文件是系统文件。 即,该文件是操作系统的一部分或者由操作系统以独占方式使用。
System = 4,
//此文件是一个目录。
Directory = 16,
//该文件是备份或移除的候选文件。
Archive = 32,
//留待将来使用。
Device = 64,
//该文件是没有特殊属性的标准文件。 仅当其单独使用时,此特性才有效。
Normal = 128,
//文件是临时文件。 临时文件包含当执行应用程序时需要的,但当应用程序完成后不需要的数据。 文件系统尝试将所有数据保存在内存中,而不是将数据刷新回大容量存储,以便可以快速访问。
//当临时文件不再需要时,应用程序应立即删除它。
Temporary = 256,
//此文件是稀疏文件。 稀疏文件一般是数据通常为零的大文件。
SparseFile = 512,
//文件包含一个重新分析点,它是一个与文件或目录关联的用户定义的数据块。
ReparsePoint = 1024,
//此文件是压缩文件。
Compressed = 2048,
//此文件处于脱机状态, 文件数据不能立即供使用。
Offline = 4096,
//将不会通过操作系统的内容索引服务来索引此文件。
NotContentIndexed = 8192,
//此文件或目录已加密。 对于文件来说,表示文件中的所有数据都是加密的。 对于目录来说,表示新创建的文件和目录在默认情况下是加密的。
Encrypted = 16384
}