FileAttributes枚举是一个专门用于标记硬盘上的文件属性的枚举,枚举的说明在这里:http://www.cnblogs.com/kissdodog/archive/2013/01/16/2863515.html
源代码附在最下面。最源代码看来,我们可以得出的信息,这是一个标志枚举。此FileAttribute枚举通常由File的GetAttributes方法返回一个此枚举实例,要获取具体的成员值还需要通过位运算才能得到结果,在上面那篇枚举的文章中已经有说明。
例如要获取一个文本是否为只读的
FileAttributes f = File.GetAttributes(@"E:\file.txt"); if ((f & FileAttributes.ReadOnly) == FileAttributes.ReadOnly) //此处实现了判断文件是否只读,还叫什么,位运算,还得学为运算 { Console.Write("此文件是只读的"); } else { Console.Write("此文件不是只读的"); }
再比如要设置文件只读而且是隐藏的:
File.SetAttributes(@"E:\file.txt", FileAttributes.ReadOnly | FileAttributes.Hidden);
位运算对于标志枚举是非常有用的,一定要熟练掌握,一下给出该枚举的全部成员以及成员值。
其成员和值如下
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 该文件或目录是加密的。对于文件来说,表示文件中的所有数据都是加密的。对于目录来说,表示新创建的文件和目录在默认情况下是加密的。
最后附上源代码:
// 摘要: // 提供文件和目录的属性。 [Serializable] [Flags] [ComVisible(true)] 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,