檔案IO操作 修改檔案的唯讀屬性

2022-02-07 02:26:50 字數 1155 閱讀 4360

檔案的io操作..很多同行的io工具類都是直接寫..但是如果檔案有唯讀屬性的話..則會寫入失敗..所以附加了乙個唯讀的判斷和修改..

**如下:

///

///建立檔案或者附加內容

/// ///

要寫入的文字

///編碼方式

///檔案路徑(支援相對路徑或絕對路徑)

///是否是絕對路徑

///附加還是全新寫入

///public

static

bool write(string modelsstr, string encoding, string filepath, bool isfullpath, bool

//判斷檔案是否存在

if (!file.exists)

}

else

if (file.attributes.tostring().indexof("

readonly

") != -1) //

判斷檔案屬性是否唯讀

try

return

true

; }

catch

(exception ex)

}

請注意中間注釋的位置..

使用了

file.attributes = fileattributes.normal;

之後..會有兩個問題:

1. 檔案如果有隱藏屬性或者其他的屬性..將被丟棄..也就是說不單單修改了檔案的唯讀..也把其他的屬性丟掉了..

2. 在下邊的寫入操作中會直接拋錯..顯示檔案被占用..但是也不是全都會報錯..some time 吧..

下邊是猜測..別當真..說的不對的..請過路大仙指正..

用滑鼠直接開啟資料夾點開檔案屬性勾掉檔案唯讀時..會有一段的反應時間..但是在使用上述**的時候沒有這個時間..所以我在想是不是修改了fileinfo物件後..有一段的時間給程式去修改資料夾中的檔案屬性..而這個操作是後台的..不會使程式停滯..導致程式的下一行建立 streamwriter的時候直接顯示檔案被占用.. 猜測而已..請指正..

總之..建議在做io的唯讀屬性的時候..還是使用readonly來的比較合適..

VB 改變檔案唯讀屬性

setattr 語句 為乙個檔案設定屬性資訊。語法 setattr pathname,attributes setattr 語句的語法含有以下這些命名引數 部分 描述 pathname 必要引數。用來指定乙個檔名的字串表示式,可能包含目錄或資料夾 以及驅動器。attributes 必要引數。常數或數...

iOS 標頭檔案 唯讀屬性

標頭檔案 property nonatomic,readonly uiview headview import viewcontroller.h inte ce viewcontroller end implementation viewcontroller mrc property 特性是由xco...

檔案IO操作

在對乙個檔案或者裝置進行讀寫之前,都需要先開啟,以獲得該檔案或者裝置的操作指標,也就是檔案描述符。有了檔案描述符,後續就可以進行讀取,修改操作了。標頭檔案函式宣告 int open const char pathname,int flags,mode t mode 返回值成功 返回檔案描述符 失敗 ...