[C#] 如何使一個檔案成為唯讀的或是可讀取及寫入

  • 11864
  • 0
  • 2009-11-23

摘要:[C#] 如何使一個檔案成為唯讀的或是可讀取及寫入

僅僅將檔案屬性設定成 FileAttributes.ReadOnly 是不夠的,原因是檔案可能本來就已經擁有其他屬性。所以,我們必須將寄存的屬性 (Arritbutes) 與 fileAttributes.ReadOnly 組合起來,檔案屬性是表示成一個位元遮罩。為了組合兩個位元遮罩,我們使用「| 」

運算子。以下程式碼會將檔案設定成唯讀的。

string myFile = @"C:\Test.txt";
File.SetAttributes(myFile, 
File.GetAttributes(myFile) | FileAttributes.ReadOnly);
MessageBox.Show("已經將" + myFile + " 設定成唯讀的,請於Windows 檔案總管中加以驗證。");
// 啟動Windows 檔案總管。
Process.Start("explorer.exe", @"C:\");

同樣的,我們可以移除一個檔案的 ReadOnly 屬性 (Attribute) 來使奇成為可讀取及寫入的。要從一個位元遮罩中移除某一個項目,我們必須如上述的程式碼所示,使用「^」運算子。此方法會使得所有其他屬性不被碰觸,但是確保 ReadOnly 屬性被移除。

以下程式碼會將檔案可讀取及寫入的。

string myFile = @"C:\Test.txt";
File.SetAttributes(myFile, 
File.GetAttributes(myFile) ^ FileAttributes.ReadOnly);
MessageBox.Show("已經將" + myFile + " 設定成可讀取及寫入,請於Windows 檔案總管中加以驗證。");
// 啟動Windows 檔案總管。
Process.Start("explorer.exe", @"C:\");

以上參考章立民研究室

(File_Attribute_ReadOnly_Change)

三小俠  小弟獻醜,歡迎指教