C#的FileInfo類實現(xiàn)文件操作實例
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、寫文件:
//創(chuàng)建只寫 System.IO.FileStream。 public System.IO.FileStream OpenWrite()
3、追加內(nèi)容:
//創(chuàng)建一個 System.IO.StreamWriter,它向 System.IO.FileInfo 的此實例表示的文件追加文本。 public System.IO.StreamWriter AppendText()
4、打開文件:
//在指定的模式中打開文件。 public System.IO.FileStream Open(System.IO.FileMode mode) //用讀、寫或讀/寫訪問權(quán)限在指定模式下打開文件。 public System.IO.FileStream Open(System.IO.FileMode mode, System.IO.FileAccess access) //用讀、寫或讀/寫訪問權(quán)限和指定的共享選項在指定的模式中打開文件。 public System.IO.FileStream Open(System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share)
5、復(fù)制、移動、替換:
//將現(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) //將指定文件移到新位置,并提供指定新文件名的選項。 public void MoveTo(string destFileName) //使用當(dāng)前 System.IO.FileInfo 對象所描述的文件替換指定文件的內(nèi)容,這一過程將刪除原始文件,并創(chuàng)建被替換文件的備份。 public System.IO.FileInfo Replace(string destinationFileName, string destinationBackupFileName) //使用當(dāng)前 System.IO.FileInfo 對象所描述的文件替換指定文件的內(nèi)容,這一過程將刪除原始文件,并創(chuàng)建被替換文件的備份。還指定是否忽略合并錯誤。 public System.IO.FileInfo Replace(string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors)
6、加密解密、刪除:
//將某個文件加密,使得只有加密該文件的帳戶才能將其解密。 public void Encrypt() //解密由當(dāng)前帳戶使用 System.IO.FileInfo.Encrypt() 方法加密的文件。 public void Decrypt() //永久刪除文件。 public override void Delete()
7、獲得文件屬性:
//獲取父目錄的實例。
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)屬性不再是方法了,都是通過屬性獲得的,并且除是否只讀屬性為可讀可寫的,其他屬性都是只讀的。
總結(jié):
大家注意到,我們在FileInfo中提供的方法不再是靜態(tài)的,并且返回值都是FileStream類型的,是一個文件流,因此我們在使用FileInfo這個類時還需要結(jié)合FileStream類一起使用。而在介紹File類時,所有的操作都是通過靜態(tài)方法實現(xiàn)的,并且返回值都是具體的值類型。
這也算是對File類與FileInfo類的粗略的對比。
相關(guān)文章
C#實現(xiàn)兩個richtextbox控件滾動條同步滾動的簡單方法
c# 應(yīng)用NPOI獲取Excel中的圖片,保存至本地的算法
C#解碼base64編碼二進(jìn)制數(shù)據(jù)的方法

