C#提供了以下用于文件系統(tǒng)的類。它們可用于訪問目錄,訪問文件,打開文件以進(jìn)行讀取或?qū)懭?,?chuàng)建新文件或?qū)F(xiàn)有文件從一個(gè)位置移動(dòng)到另一位置等。
類名稱 | 用法 |
---|---|
File | File是一個(gè)靜態(tài)類,提供不同的功能,例如復(fù)制,創(chuàng)建,移動(dòng),刪除,打開以進(jìn)行讀取或?qū)懭耄用芑蚪饷?,檢查文件是否存在,在文件內(nèi)容中添加行或文本,獲取上次訪問時(shí)間等。 |
FileInfo | FileInfo類提供與靜態(tài)File類相同的功能。通過手動(dòng)編寫用于從文件讀取或?qū)懭胱止?jié)的代碼,您可以更好地控制對(duì)文件的讀/寫操作。 |
Directory | 目錄是一個(gè)靜態(tài)類,提供創(chuàng)建,移動(dòng),刪除和訪問子目錄的功能。 |
DirectoryInfo | DirectoryInfo提供了用于創(chuàng)建,移動(dòng),刪除和訪問子目錄的實(shí)例方法。 |
Path | Path是一個(gè)靜態(tài)類,提供一些功能,例如檢索文件擴(kuò)展名,更改文件擴(kuò)展名,檢索絕對(duì)物理路徑以及其他與路徑相關(guān)的功能。 |
C# 包含靜態(tài) File 類,用于在物理文件系統(tǒng)上執(zhí)行 i/o 操作。靜態(tài)文件類包括各種實(shí)用方法,可以與任何類型的物理文件(如二進(jìn)制文件、文本文件等)進(jìn)行交互。
使用此靜態(tài)File類對(duì)物理文件執(zhí)行一些快速操作。由于性能原因,不建議將File類同時(shí)用于多個(gè)文件的多個(gè)操作。在這種情況下使用FileInfo類。
方法 | 用法 |
---|---|
AppendAllLines | 將行追加到文件,然后關(guān)閉該文件。如果指定的文件不存在,則此方法將創(chuàng)建一個(gè)文件,將指定的行寫入該文件,然后關(guān)閉該文件。 |
AppendAllText | 打開一個(gè)文件,將指定的字符串附加到該文件,然后關(guān)閉該文件。如果該文件不存在,則此方法將創(chuàng)建一個(gè)文件,將指定的字符串寫入該文件,然后關(guān)閉該文件。 |
AppendText | 創(chuàng)建一個(gè)StreamWriter,它將UTF-8編碼的文本附加到現(xiàn)有文件,或者如果指定的文件不存在,則附加到新文件。 |
Copy | 將現(xiàn)有文件復(fù)制到新文件。不允許覆蓋同名文件。 |
Create | 在指定路徑中創(chuàng)建或覆蓋文件。 |
CreateText | 創(chuàng)建或打開用于寫入U(xiǎn)TF-8編碼文本的文件。 |
Decrypt | 使用Encrypt方法解密由當(dāng)前帳戶加密的文件。 |
Delete | 刪除指定的文件。 |
Encrypt | 加密文件,以便只有用于加密文件的帳戶才能解密該文件。 |
Exists | 確定指定的文件是否存在。 |
GetAccessControl | 獲取一個(gè)FileSecurity對(duì)象,該對(duì)象封裝了指定文件的訪問控制列表(ACL)條目。 |
Move | 將指定的文件移動(dòng)到新位置,并提供指定新文件名的選項(xiàng)。 |
Open | 在具有讀取/寫入訪問權(quán)限的指定路徑上打開FileStream。 |
ReadAllBytes | 打開一個(gè)二進(jìn)制文件,將文件的內(nèi)容讀入字節(jié)數(shù)組,然后關(guān)閉該文件。 |
ReadAllLines | 打開一個(gè)文本文件,讀取文件的所有行,然后關(guān)閉文件。 |
ReadAllText | 打開一個(gè)文本文件,讀取文件的所有行,然后關(guān)閉文件。 |
Replace | 用另一個(gè)文件的內(nèi)容替換指定文件的內(nèi)容,刪除原始文件,并創(chuàng)建替換文件的備份。 |
WriteAllBytes | 創(chuàng)建一個(gè)新文件,將指定的字節(jié)數(shù)組寫入該文件,然后關(guān)閉該文件。如果目標(biāo)文件已經(jīng)存在,則將其覆蓋。 |
WriteAllLines | 創(chuàng)建一個(gè)新文件,將字符串集合寫入該文件,然后關(guān)閉該文件。 |
WriteAllText | 創(chuàng)建一個(gè)新文件,將指定的字符串寫入該文件,然后關(guān)閉該文件。如果目標(biāo)文件已經(jīng)存在,則將其覆蓋。 |
使用AppendAllLines()方法將多行文本添加到指定文件,如下所示。
string dummyLines = "This is first line." + Environment.NewLine + "This is second line." + Environment.NewLine + "This is third line."; //打開DummyFile.txt并追加行。如果文件不存在,則創(chuàng)建并打開。 File.AppendAllLines(@"C:\DummyFile.txt", dummyLines.Split(Environment.NewLine.ToCharArray()).ToList<string>());
使用 File.AppendAllText ()方法將字符串追加到單行代碼的文件中,如下所示。
//打開DummyFile.txt并附加文本。如果文件不存在,則創(chuàng)建并打開。 File.AppendAllText(@"C:\ DummyFile.txt", "This is File testing");
使用File.WriteAllText()方法將文本寫入文件。請(qǐng)注意,它不會(huì)追加文本,但覆蓋現(xiàn)有的文本。
示例:覆蓋現(xiàn)有文本
//打開DummyFile.txt并編寫文本。如果文件不存在,則創(chuàng)建并打開。 File.WriteAllText(@"C:\DummyFile.txt", "This is dummy text");
下面的示例演示如何使用靜態(tài)File類執(zhí)行不同的操作。
//檢查文件在特定位置是否存在 bool isFileExists = File.Exists(@"C:\ DummyFile.txt"); // 返回假 //將DummyFile.txt復(fù)制為新文件DummyFileNew.txt File.Copy(@"C:\DummyFile.txt", @"D:\NewDummyFile.txt"); //獲取上次訪問文件的時(shí)間 DateTime lastAccessTime = File.GetLastAccessTime(@"C:\DummyFile.txt"); //獲取上次寫入文件的時(shí)間 DateTime lastWriteTime = File.GetLastWriteTime(@"C:\DummyFile.txt"); // 將文件移到新位置 File.Move(@"C:\DummyFile.txt", @"D:\DummyFile.txt"); //打開文件并返回FileStream以從文件讀取字節(jié) FileStream fs = File.Open(@"D:\DummyFile.txt", FileMode.OpenOrCreate); //打開文件并返回StreamReader以從文件中讀取字符串 StreamReader sr = File.OpenText(@"D:\DummyFile.txt"); //刪除文件 File.Delete(@"C:\DummyFile.txt");
因此,使用靜態(tài) File 類很容易處理物理文件。但是,如果您想要更多的靈活性,那么可以使用 FileInfo 類。同樣,使用靜態(tài) Directory 類處理物理目錄。
File 是一個(gè)靜態(tài)類,可以用較少的編碼從物理文件讀取\寫入。
靜態(tài) File 類為物理文件提供了諸如創(chuàng)建,讀取\寫入,復(fù)制,移動(dòng),刪除等功能。
靜態(tài) Directory 類以更少的編碼為物理目錄提供了諸如創(chuàng)建,復(fù)制,移動(dòng),刪除等功能。
FileInfo 和 DirectoryInfo 類提供與靜態(tài)File和Directory類相同的功能。