file類和fileinfo類的異同

2021-06-01 06:42:30 字數 841 閱讀 9394

system.io命名空間中提供的檔案操作類有file和fileinfo,這兩個類的功能基本相同,只是file是靜態類,其中所有方法都是靜態的,可以通過類名直接呼叫,不需要例項化。而fileinfo是普通類,只有例項化物件後才可以呼叫其中的方法。

file類是乙個靜態類,它對應整個檔案系統進行操作,方法均為靜態文法;如果只是對檔案進行少量的操作,如判斷檔案是否存在之類或者對很多的檔案進行操作,建議使用file類,可以避免頻繁建立和釋放物件的系統開銷。

fileinfo類是乙個例項類,它對應某乙個檔案進行操作,方法大部分為例項方法,它的操作有可能是呼叫的file中的對應靜態方法。如果是對乙個檔案進行大量的操作,建議使用fileinfo類。

那麼為什麼有時還使用fileinfo呢?因為每次通過file類呼叫某個方法時,都要占用一定的cpu處理時間來進行安全檢查,即使使用不同的file類的方法重複訪問同乙個檔案時也是如此。而fileinfo類只在建立fileinfo物件時執行一次安全檢查。

為方便操作,有很多時候不需要生成乙個fileinfo物件那麼麻煩。

比如:複製乙個檔案到另外乙個地方:

file.copy(filepath,newfilepath)就可以。

如果用fileinfo

可能需要:

fileinof fi = new fileinfo();

fi.copyto(newfilepath);

我們可以使用以下規則確定:

1、如果應用程式在檔案上執行幾種操作,則使用fileinfo類更好一些,因為建立物件時,已經引用了正確的檔案,而靜態類每次都要尋找檔案,會花費更多時間。

2、如果進行單一的方法呼叫,則建議用file類,不必例項化物件。

C 檔案操作 File類和FileInfo類

file類可以對檔案進行讀寫,對單個檔案處理的效率比fileinfo類高,file類的方法都是靜態方法,呼叫的時候直接用類呼叫 using system using system.collections.generic using system.linq using system.text usin...

File類與FileInfo類的區別

這些年 也寫了不少,關於檔案i o的操作也寫了很多,基本上file類與fileinfo類也沒有刻意的去看效能,有時用著也挺糊塗的,今天就將這些i 0操作總結下,老樣子貼碼 首先先了解清楚下file類與fileinfo類的定義 file類 引用命名空間 using system.io 將 file 類...

檔案管理類 FileInfo 和 File

fileinfo.copyto 不能複製整個資料夾的內容,如果需要複製整個資料夾的內容的話,需要單獨複製每個檔案,並建立於舊目錄相同的資料夾名稱才可以 汗 這個麻煩了 通過檢查 exists 可以確定檔案是否存在 複製指定目錄的所有檔案,不包含子目錄 原始目錄 目標目錄 如果為true,表示覆蓋同名...