C# 文件類中 File ,FileInfo 類的主要區別


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類,不必實例化對象。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM