摘要:[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)
三小俠 小弟獻醜,歡迎指教