摘要
C#中的FileInfo類是一個用于處理和操作文件的類。它是System.IO命名空間中的一個重要類,提供了創(chuàng)建,刪除和讀取文件的屬性和方法。這些方法和屬性允許我們在程序中訪問和操作文件,以便在我們的應用程序中使用文件進行各種任務。
FileInfo類有許多有用的方法和屬性,例如FileName屬性用于獲取文件的完整路徑和名稱,Directory屬性用于獲取文件所在的目錄。另外,還有許多其他的屬性和方法,如CreationTime、LastAccessTime、LastWriteTime等等,它們允許我們獲取文件的創(chuàng)建,訪問和修改時間等信息。
除了讀取和寫入文件,FileInfo類還提供了一些有用的方法,如CopyTo、Delete和Exists等等。這些方法允許我們復制文件到其他位置,刪除文件,以及檢查文件是否存在。
最重要的是,FileInfo類使用StreamWriter類將文件寫入文件。這允許我們將文本,二進制數據和其他類型的數據寫入文件。我們可以使用StreamWriter類將數據寫入文件的指定位置,也可以在不寫入文件的情況下預寫入數據。
FileInfo類是一個非常有用的類,可以幫助我們在C#程序中輕松處理和操作文件。它提供了許多方法和屬性,使我們能夠輕松讀取,寫入和修改文件,并在需要時執(zhí)行其他任務。如果你想在C#中處理文件,FileInfo類是一個必不可少的工具。
正文
構造函數
下表列出FileInfo
類的構造函數。
構造函數 | 描述 |
---|
FileInfo(String) | 它用于初始化FileInfo 類的新實例,該實例充當文件路徑的包裝器。 |
屬性
下表列出FileInfo
類的屬性。
屬性 | 描述 |
---|
Attributes | 它用于獲取或設置當前文件或目錄的屬性。 |
CreationTime | 它用于獲取或設置當前文件或目錄的創(chuàng)建時間。 |
Directory | 它用于獲取父目錄的實例。 |
DirectoryName | 它用于獲取表示目錄完整路徑的字符串。 |
Exists | 它用于獲取一個值,指示文件是否存在。 |
FullName | 它用于獲取目錄或文件的完整路徑。 |
IsReadOnly | 它用于獲取或設置確定當前文件是否為只讀的值。 |
LastAccessTime | 它用于獲取或設置從上一次訪問當前文件或目錄的時間。 |
Length | 它用于獲取當前文件的字節(jié)數。 |
Name | 它用于獲取文件的名稱。 |
方法
方法 | 描述 |
---|
AppendText() | 它用于創(chuàng)建一個StreamWriter 類對象,將文本附加到FileInfo 的此實例所表示的文件中。 |
CopyTo(String) | 它用于將現有文件復制到新文件。 |
Create() | 它用于創(chuàng)建文件。 |
CreateText() | 它用于創(chuàng)建一個寫入新文本文件的StreamWriter 類對象。 |
Decrypt() | 它用于解密由使用加密方法當前帳戶加密的文件。 |
Delete() | 它用于永久刪除文件。 |
Encrypt() | 它用于加密文件,以便只有用于加密文件的帳戶才能對其進行解密。 |
GetAccessControl() | 它用于獲取封裝訪問控制列表(ACL)條目的FileSecurity 對象。 |
MoveTo(String) | 它用于將特定文件移動到新的指定位置。 |
Open(FileMode) | 它用于以指定的模式來打開文件。 |
OpenRead() | 它用于創(chuàng)建只讀FileStream 。 |
OpenText() | 它用于創(chuàng)建從現有文本文件使用UTF8編碼讀取的StreamReader 類。 |
OpenWrite() | 它用于創(chuàng)建只寫FileStream 對象。 |
Refresh() | 它用于刷新對象的狀態(tài)。 |
Replace(String,String) | 用于使用當前FileInfo 對象描述的文件替換指定文件的內容。 |
ToString() | 它用于將路徑作為字符串返回。 |
創(chuàng)建文件
private void btnCreateFile_Click(object sender, EventArgs e)
{
string f1 = Path.Combine(Path.GetFullPath("./"), "a.txt");
FileInfo file = new FileInfo(f1);
file.Create();
}
寫入文件
private void btnWirteFile_Click(object sender, EventArgs e)
{
string f1 = Path.Combine(Path.GetFullPath("./"), "a.txt");
FileInfo file = new FileInfo(f1);
StreamWriter writer = file.CreateText();
writer.WriteLine("NBA新賽季常規(guī)賽繼續(xù)進行,洛杉磯湖人隊(1勝5負)終于收獲賽季首勝。" +
"勒布朗得到26分、6個籃板和8次助攻,戴維斯得到23分和15個籃板," +
"威少得到18分、8個籃板和8次助攻,湖人隊依靠第三節(jié)高潮一舉反超并確立優(yōu)勢," +
"他們在主場以121-110戰(zhàn)勝丹佛掘金隊(4勝3負)。湖人隊結束5連敗,掘金隊結束2連勝。");
writer.Close();
}
用SteamWriter一定記得Close
讀取文本內容
private void btnReadFile_Click(object sender, EventArgs e)
{
string f1 = Path.Combine(Path.GetFullPath("./"), "a.txt");
FileInfo file = new FileInfo(f1);
string data = "";
using (StreamReader reader = file.OpenText())
{
data = reader.ReadToEnd();
}
MessageBox.Show(data);
}
文件屬性
string f1 = Path.Combine(Path.GetFullPath("./"), "a.txt");
FileInfo file = new FileInfo(f1);
var isExist = file.Exists;//文件是否存在
var dir = file.DirectoryName;//文件所在目錄
var ext = file.Extension;//文件擴展名
var dt = file.CreationTime;//文件創(chuàng)建時間
var isCompressed= file.Attributes.HasFlag(FileAttributes.Compressed);//文件是否壓縮
文件操作,拷貝,刪除,移動
string f1 = Path.Combine(Path.GetFullPath("./"), "a.txt");
string c1 = Path.Combine(Path.GetFullPath("./"), "b.txt");
string d1 = Path.Combine(Path.GetFullPath("../"), "c.txt");
FileInfo file = new FileInfo(f1);
file.CopyTo(c1, true);
//拷貝file.MoveTo(d1);
//剪切file.Delete();
注:其中File靜態(tài)態(tài)與FileInfo功能基本一致,其中文件讀寫更為簡單。
寫文件
string f1 = Path.Combine(Path.GetFullPath("./"), "a.txt");
File.WriteAllText(f1, "自從今夏重返尤文之后," +
"博格巴就因膝蓋傷勢而休養(yǎng)至今。博格巴原本預計能在世界杯前復出,但昨天卻又遭遇了重創(chuàng)。");
讀取文件
string f1 = Path.Combine(Path.GetFullPath("./"), "a.txt");
string content=File.ReadAllText(f1);
MessageBox.Show(content);
該文章在 2024/2/7 23:18:58 編輯過