C# 檔案操作詳解(二)FileInfo類
阿新 • • 發佈:2019-01-23
本篇讓我們一起看一下FileInfo類如何使用。
FileInfo類 提供了與File類相同的功能,不同的是FileInfo提供的都是成員方法
1、讀檔案
1 2 3 4 |
//摘要:建立只讀
System.IO.FileStream。
public System.IO.FileStream
OpenRead()
//摘要:建立使用
UTF8 編碼、從現有文字檔案中進行讀取的 System.IO.StreamReader。<br>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類的錯略的對比。