C#的FileInfo類實(shí)現(xiàn)文件操作實(shí)例
C#的FileInfo類提供了與File類相同的功能,不同的是FileInfo提供的都是成員方法,使用示例如下所示:
1、讀文件:
//創(chuàng)建只讀 System.IO.FileStream。 public System.IO.FileStream OpenRead() //創(chuàng)建使用 UTF8 編碼、從現(xiàn)有文本文件中進(jìn)行讀取的 System.IO.StreamReader。 public System.IO.StreamReader OpenText()
2、寫(xiě)文件:
//創(chuàng)建只寫(xiě) System.IO.FileStream。 public System.IO.FileStream OpenWrite()
3、追加內(nèi)容:
//創(chuàng)建一個(gè) System.IO.StreamWriter,它向 System.IO.FileInfo 的此實(shí)例表示的文件追加文本。 public System.IO.StreamWriter AppendText()
4、打開(kāi)文件:
//在指定的模式中打開(kāi)文件。 public System.IO.FileStream Open(System.IO.FileMode mode) //用讀、寫(xiě)或讀/寫(xiě)訪問(wèn)權(quán)限在指定模式下打開(kāi)文件。 public System.IO.FileStream Open(System.IO.FileMode mode, System.IO.FileAccess access) //用讀、寫(xiě)或讀/寫(xiě)訪問(wèn)權(quán)限和指定的共享選項(xiàng)在指定的模式中打開(kāi)文件。 public System.IO.FileStream Open(System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share)
5、復(fù)制、移動(dòng)、替換:
//將現(xiàn)有文件復(fù)制到新文件,不允許覆蓋現(xiàn)有文件。 public System.IO.FileInfo CopyTo(string destFileName) //將現(xiàn)有文件復(fù)制到新文件,允許覆蓋現(xiàn)有文件。 public System.IO.FileInfo CopyTo(string destFileName, bool overwrite) //將指定文件移到新位置,并提供指定新文件名的選項(xiàng)。 public void MoveTo(string destFileName) //使用當(dāng)前 System.IO.FileInfo 對(duì)象所描述的文件替換指定文件的內(nèi)容,這一過(guò)程將刪除原始文件,并創(chuàng)建被替換文件的備份。 public System.IO.FileInfo Replace(string destinationFileName, string destinationBackupFileName) //使用當(dāng)前 System.IO.FileInfo 對(duì)象所描述的文件替換指定文件的內(nèi)容,這一過(guò)程將刪除原始文件,并創(chuàng)建被替換文件的備份。還指定是否忽略合并錯(cuò)誤。 public System.IO.FileInfo Replace(string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors)
6、加密解密、刪除:
//將某個(gè)文件加密,使得只有加密該文件的帳戶才能將其解密。 public void Encrypt() //解密由當(dāng)前帳戶使用 System.IO.FileInfo.Encrypt() 方法加密的文件。 public void Decrypt() //永久刪除文件。 public override void Delete()
7、獲得文件屬性:
//獲取父目錄的實(shí)例。
public System.IO.DirectoryInfo Directory { get; }
//獲取表示目錄的完整路徑的字符串。
public string DirectoryName { get; }
//獲取指示文件是否存在的值。
public override bool Exists { get; }
//獲取或設(shè)置確定當(dāng)前文件是否為只讀的值。
public bool IsReadOnly { set; get; }
//獲取當(dāng)前文件的大?。ㄗ止?jié))。
public long Length { get; }
//獲取文件名。
public override string Name { get; }
在FileInfo中獲取文件的相關(guān)屬性不再是方法了,都是通過(guò)屬性獲得的,并且除是否只讀屬性為可讀可寫(xiě)的,其他屬性都是只讀的。
總結(jié):
大家注意到,我們?cè)?span style="color: #0000ff">FileInfo中提供的方法不再是靜態(tài)的,并且返回值都是FileStream類型的,是一個(gè)文件流,因此我們?cè)谑褂肍ileInfo這個(gè)類時(shí)還需要結(jié)合FileStream類一起使用。而在介紹File類時(shí),所有的操作都是通過(guò)靜態(tài)方法實(shí)現(xiàn)的,并且返回值都是具體的值類型。
這也算是對(duì)File類與FileInfo類的粗略的對(duì)比。
相關(guān)文章
C#使用讀寫(xiě)鎖三行代碼簡(jiǎn)單解決多線程并發(fā)的問(wèn)題
本文主要介紹了C#使用讀寫(xiě)鎖三行代碼簡(jiǎn)單解決多線程并發(fā)寫(xiě)入文件時(shí)提示“文件正在由另一進(jìn)程使用,因此該進(jìn)程無(wú)法訪問(wèn)此文件”的問(wèn)題。需要的朋友可以參考借鑒2016-12-12
教你創(chuàng)建一個(gè)帶診斷工具的.NET鏡像
本文編寫(xiě)的初衷是因?yàn)樵谌豪镉泻芏嘈』锇橛龅缴a(chǎn)環(huán)境性能問(wèn)題的時(shí)候,.NET的runtime鏡像中沒(méi)有帶一些工具,安裝和使用起來(lái)很麻煩,所以分享一些我們公司內(nèi)部一些技巧,對(duì).NET鏡像帶診斷工具相關(guān)知識(shí)感興趣的朋友一起看看吧2022-07-07
c#只讀字段和常量的區(qū)別,以及靜態(tài)構(gòu)造函數(shù)的使用實(shí)例
這篇文章主要介紹了c#只讀字段和常量的區(qū)別,以及靜態(tài)構(gòu)造函數(shù)的使用實(shí)例,有需要的朋友可以參考一下2013-12-12
Treeview動(dòng)態(tài)添加用戶控件傳值和取值的實(shí)例代碼
今天做了很好玩的樹(shù),是treeview與用戶控件之間進(jìn)行交互先看效果:2013-04-04
C#實(shí)現(xiàn)多線程的幾種方式常用場(chǎng)景分析
多線程是C#中一個(gè)重要的概念,多線程指的是在同一進(jìn)程中同時(shí)運(yùn)行多個(gè)線程的機(jī)制,多線程適用于需要提高系統(tǒng)并發(fā)性、吞吐量和響應(yīng)速度的場(chǎng)景,可以充分利用多核處理器和系統(tǒng)資源,提高應(yīng)用程序的性能和效率,這篇文章主要介紹了C#實(shí)現(xiàn)多線程的幾種方式,需要的朋友可以參考下2024-05-05
WPF實(shí)現(xiàn)動(dòng)畫(huà)效果(三)之時(shí)間線(TimeLine)
這篇文章介紹了WPF實(shí)現(xiàn)動(dòng)畫(huà)效果之時(shí)間線(TimeLine),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2022-06-06

