FileInfo fi = new FileInfo("C://test.txt");
Console.WriteLine(fi.CreationTime.ToString());
Console.WriteLine(fi.LastWriteTime.ToString());
Console.WriteLine(fi.LastAccessTime.ToString());
// 改變(設置)文件的創建、修改、訪問時間
File.SetCreationTime("C://test.txt", DateTime.Now.AddYears(-1));
File.SetLastWriteTime("C://test.txt", DateTime.Now.AddYears(-2));
File.SetLastAccessTime("C://test.txt", DateTime.Now.AddYears(-3));
FileInfo 和 File 的名稱空間是:
以文件只讀和隱藏屬性爲例,其他屬性,比如“存檔”、“系統”等,方法類似。
讀取文件只讀和隱藏屬性
if ((fi.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
{
Console.WriteLine("是隻讀");
}
else
{
Console.WriteLine("不是隻讀");
}
if ((fi.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden)
{
Console.WriteLine("是隱藏");
}
else
{
Console.WriteLine("不是隱藏");
}
設置文件只讀和隱藏屬性
fi.Attributes = fi.Attributes | FileAttributes.ReadOnly | FileAttributes.Hidden; // 法一
//File.SetAttributes("C://test.txt", fi.Attributes | FileAttributes.ReadOnly | FileAttributes.Hidden); // 法二
可以看出,既可通過設置 Attributes 屬性,也可通過利用 File 的 SetAttributes 方法來到目的。
說明的是,不管怎樣做,都要先獲取文件的原屬性,如果不獲取文件的原屬性,直接就是 FileAttributes.ReadOnly | FileAttributes.Hidden,那麼,可能會導致一些屬性丟失,比如文件以前可能有“存檔”屬性,直接這樣設置的話,存檔屬性就丟失了。
取消文件只讀和隱藏屬性
fi.Attributes = fi.Attributes & ~FileAttributes.ReadOnly & ~FileAttributes.Hidden; // 法一
//File.SetAttributes("C://test.txt", fi.Attributes & ~FileAttributes.ReadOnly & ~FileAttributes.Hidden); // 法二
類似於設置,只是一些運算符號變了。注意,網上的說法是直接設置屬性爲 FileAttributes.Normal,這是不對的,這不僅取消了只讀和隱藏屬性,可能還取消了其他一些屬性,比如“存檔”。
說明
不當的屬性設置,可能導致文件無法在 Windows 資源管理器中顯示出來,但又確實存在,此時可以利用 FileAttributes.Normal 將文件顯示出來,方便操作。