C# Filelnfo類
與Hie類不同,F(xiàn)ilelnfo類不是靜態(tài)的,沒有靜態(tài)方法,只有在實例化后才可使用。Filelnfo對象表示磁盤或網(wǎng)絡(luò)位置上的文件。提供文件路徑,就可以創(chuàng)建一個Filelnfo對象:
Filelnfo aFile = new Filelnfo <@"C:\Log.txt*1);
在路徑名中,你也可以使用“/”字符。但那樣的話,當(dāng)執(zhí)行的Windows命令為命令行選項使“/”時,將會發(fā)生沖突。
也可將目錄名傳遞給FileInfo構(gòu)造函數(shù),但實際上這并不是很有用。這么做會用所有的目錄信息初始化FileInfo的基類FilesSystemlnfo,但FileInfo中與文件相關(guān)的專用方法或?qū)傩远疾粫ぷ鳌?/p>
FileInfo類提供的許多方法類似于File類的方法,但由于File是靜態(tài)類,它需要一個字符串參數(shù)為每個方 法調(diào)用指定文件位置。因此,下面的調(diào)用可以完成相同的工作:
Filelnfo aFile = new Filelnfo("Data.txt");
if (aFile.Exists)
WriteLine ("File Exists");
if (File.Exists("Data.txt"))
WriteLine {"File Exists");
這段代碼檢查文件Data.txt是否存在。注意,這里沒有指定任何目錄信息,這說明只檢査當(dāng)前的工作目錄。這個目錄包含調(diào)用此代碼的應(yīng)用程序。
Filelnfo類的許多方法與File類中的對應(yīng)方法類似。大多數(shù)情況下使用什么技術(shù)并不重要,但下面的規(guī)則有助于確定哪種技術(shù)更合適:
? 如果僅進(jìn)行單一方法調(diào)用,則可使用靜態(tài)File類上的方法。在此,單一調(diào)用要快一些,因為.NET Framework不必實例化新對象,再調(diào)用方法。
? 如果應(yīng)用程序在文件上執(zhí)行幾種操作,則實例化Filelnfo對象并使用其方法就更好一些。這節(jié)省時間,因為對象己在文件系統(tǒng)上引用正確的文件,而靜態(tài)類必須每次都尋找文件。
Filelnfo類也提供了與底層文件相關(guān)的屬性,其中一些屬性可用來更新文件,其中很多屬性都繼承于FileSystemlnfo.所以可應(yīng)用于 Filelnfo和 Directorylnfo類。FileSystemlnfo類的屬性如表所不。
屬 性 | 說明 |
Attributes | 使用FileAttributes枚舉,獲取或者設(shè)置當(dāng)前文件或目錄的特性 |
CreationTime, CreationTimeUtc | 獲取當(dāng)前文件的創(chuàng)建日期和時間,可使用UTC和非UTC版本 |
Extension | 提取文件的擴(kuò)展名。這個屬性是只讀的 |
Exists | 確定文件是否存在,這是一個只讀的抽象屬性,在Filelnfo和Directorylnfo中進(jìn)行了重寫 |
FullName | 檢索文件的完整路徑,這個屬性是只讀的 |
LastAccessTime, LastAccessTimeUtc | 獲取或設(shè)盟上次訪問當(dāng)前文件的日期和時間,可使用UTC和非UTC版本 |
LastWriteTime, LastWriteTimelltc | 獲取或設(shè)罝上次寫入當(dāng)前文件的日期和時間,可使用UTC和非UTC版本 |
Name | 檢索文件的完整路徑,這是一個只讀抽象屬性,在Filelnfo和Directorylnfo中進(jìn)行了重寫 |
Filelnfo的專用屬性如表所示。
屬 性 | 說明 |
Directory | 檢索一個Directorylnfo對象,表示包含當(dāng)前文件的目錄。這個屈性是只讀的 |
DirectoryName | 返回文件目錄的路徑。這個屬性是只讀的 |
IsReadOnly | 文件只讀特性的快捷方式。也可以通過Attributes來訪問這個屈性 |
Length | 獲取文件的大小(以字節(jié)為單位),返回long值。這個屬性是只讀的 |
點擊加載更多評論>>