C# 文件操作詳解(二)---------FileInfo類

上一篇我們已經瞭解了File類的使用,本篇讓我們一起看一下FileInfo類如何使用。

    FileInfo類  提供了與File類相同的功能,不同的是FileInfo提供的都是成員方法

  1、讀文件

//摘要:創建只讀 System.IO.FileStream。
public System.IO.FileStream OpenRead()

//摘要:創建使用 UTF8 編碼、從現有文本文件中進行讀取的 System.IO.StreamReader。
public System.IO.StreamReader OpenText()

  2、寫文件

//摘要:創建只寫 System.IO.FileStream。
public System.IO.FileStream OpenWrite()

  3、追加內容

//摘要:創建一個 System.IO.StreamWriter,它向 System.IO.FileInfo 的此實例表示的文件追加文本。
public System.IO.StreamWriter AppendText()

  4、打開文件

//摘要:在指定的模式中打開文件。
public System.IO.FileStream Open(System.IO.FileMode mode)

//摘要:用讀、寫或讀/寫訪問權限在指定模式下打開文件。
public System.IO.FileStream Open(System.IO.FileMode mode, System.IO.FileAccess access)

//摘要:用讀、寫或讀/寫訪問權限和指定的共享選項在指定的模式中打開文件。
public System.IO.FileStream Open(System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share)

  5、複製、移動、替換

//摘要:將現有文件複製到新文件,不允許覆蓋現有文件。
public System.IO.FileInfo CopyTo(string destFileName)

//摘要:將現有文件複製到新文件,允許覆蓋現有文件。
public System.IO.FileInfo CopyTo(string destFileName, bool overwrite)


//摘要:將指定文件移到新位置,並提供指定新文件名的選項。
public void MoveTo(string destFileName)


//摘要:使用當前 System.IO.FileInfo 對象所描述的文件替換指定文件的內容,這一過程將刪除原始文件,並創建被替換文件的備份。
public System.IO.FileInfo Replace(string destinationFileName, string destinationBackupFileName)

//摘要:使用當前 System.IO.FileInfo 對象所描述的文件替換指定文件的內容,這一過程將刪除原始文件,並創建被替換文件的備份。還指定是否忽略合併錯誤。
public System.IO.FileInfo Replace(string destinationFileName, string destinationBackupFileName, bool ignoreMetadataErrors)

  6、加密解密、刪除

//摘要:將某個文件加密,使得只有加密該文件的帳戶才能將其解密。
public void Encrypt()

//摘要:解密由當前帳戶使用 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; }

//摘要:獲取或設置確定當前文件是否爲只讀的值。
public bool IsReadOnly { set; get; }

//摘要:獲取當前文件的大小(字節)。
public long Length { get; }

//摘要:獲取文件名。
public override string Name { get; }

  在FileInfo中獲取文件的相關屬性不再是方法了,都是通過屬性獲得的,並且除是否只讀屬性爲可讀可寫的,其他屬性都是隻讀的。

  小結

  大家注意到,我們在介紹File類時,所有的操作都是通過靜態方法實現的,並且返回值都是具體的值類型(暫且這樣說),而在FileInfo中提供的方法不再是靜態的,並且返回值都是FileStream類型的,是一個文件流,因此我們在使用FileInfo這個類時還需要結合FileStream類一起使用。

     這也算是對File類與FileInfo類的錯略的對比。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章