【File時間】包括創建、修改、訪問時間的獲得

// 讀取文件的創建、修改、訪問時間
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 的名稱空間是:

System.IO
================================================

以文件只讀和隱藏屬性爲例,其他屬性,比如“存檔”、“系統”等,方法類似。

讀取文件只讀和隱藏屬性

FileInfo fi = new FileInfo("C://test.txt");
if ((fi.Attributes & FileAttributes.ReadOnly) == FileAttributes.ReadOnly)
{
    Console.WriteLine("是隻讀");
}
else
{
    Console.WriteLine("不是隻讀");
}
if ((fi.Attributes & FileAttributes.Hidden) == FileAttributes.Hidden)
{
    Console.WriteLine("是隱藏");
}
else
{
    Console.WriteLine("不是隱藏");
}

設置文件只讀和隱藏屬性

FileInfo fi = new FileInfo("C://test.txt");
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,那麼,可能會導致一些屬性丟失,比如文件以前可能有“存檔”屬性,直接這樣設置的話,存檔屬性就丟失了。

取消文件只讀和隱藏屬性

FileInfo fi = new FileInfo("C://test.txt");
fi.Attributes = fi.Attributes & ~FileAttributes.ReadOnly & ~FileAttributes.Hidden; // 法一
//File.SetAttributes("C://test.txt", fi.Attributes & ~FileAttributes.ReadOnly & ~FileAttributes.Hidden); // 法二

類似於設置,只是一些運算符號變了。注意,網上的說法是直接設置屬性爲 FileAttributes.Normal,這是不對的,這不僅取消了只讀和隱藏屬性,可能還取消了其他一些屬性,比如“存檔”。

說明

不當的屬性設置,可能導致文件無法在 Windows 資源管理器中顯示出來,但又確實存在,此時可以利用 FileAttributes.Normal 將文件顯示出來,方便操作。

發佈了19 篇原創文章 · 獲贊 13 · 訪問量 12萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章