一. C#提供的文件操作
File類和FileInfo類的區別和使用方法.,兩者的主要區別是File不能實例化,只提供靜態方法,而後者可以實例化,,提供的方法和File類相似.先看下利用FileInfo構造的一個實例: FileInfo myfile = new FileInfo("c:\\abc.txt");
創建 一個文件實例對象,現在我們可以看下它的屬性:
FileInfo myfile = new FileInfo("c:\\abc.txt");
Console.WriteLine(myfile.Attributes);//屬性
Console.WriteLine(myfile.CreationTime);//創建時間
Console.WriteLine(myfile.CreationTimeUtc);//Utc時間
Console.WriteLine(myfile.Directory);//目錄
Console.WriteLine(myfile.DirectoryName);//目錄名字
Console.WriteLine(myfile.Exists);//是否存在
Console.WriteLine(myfile.Extension);文件擴展名
Console.WriteLine(myfile.FullName);//全名
Console.WriteLine(myfile.IsReadOnly);是否只讀
Console.WriteLine(myfile.LastAccessTime);上次訪問
Console.WriteLine(myfile.LastAccessTimeUtc);時間
Console.WriteLine(myfile.LastWriteTime);上次讀入
Console.WriteLine(myfile.LastWriteTimeUtc);時間
Console.WriteLine(myfile.Length);文件長度
Console.WriteLine(myfile.Name);文件名字
Console.WriteLine("以上是實例文件的屬性");
至於File和FileInfo提供的方法,我在這裡不全部介紹,大家可以去msdn.查看.下面舉例說明下與文件有關的操作.:讀取文件的內容,中間有些知識沒有介紹,大家自己可以先去思考或者搜索相關內容,.
FileInfo myfile = new FileInfo("c:\\abc.txt");
if (!myfile.Exists)//判斷文件是否存在,
myfile.Create();不在就創建文件
FileStream fs = new FileStream
("c:\\abc.txt", FileMode.Open)//打開文件
StreamReader sr = new StreamReader(fs);輸入流
string strLine = "";
try
{
strLine = sr.ReadLine();//讀取文件裡的一行
while (strLine != null)//非空
{
strLine = sr.ReadLine();繼續讀取下一行
}直到文件的最後一行
sr.Close();//關閉流
}
catch (IOException ex){//處理異常
throw ex;
}
File類是靜態類, File方法都是靜態的,所以如果只想執行一個操作,那麼使用File方法的效率比使用相應的FileInfo 實例方法可能更高。所有的File方法都要求當前所操作的文件的路徑。File 類的靜態方法對所有方法都執行安全檢查。如果打算多次重用某個對象,可考慮改用FileInfo的相應實例方法,因為並不總是需要安全檢查。
二. C#的目錄操作
C#提供DirectoryInfo和Directory兩個類來處理與目錄相關的操作. 前者必須被實例化後才能使用,而後者則只提供了靜態的方法。如果多次使用某個對象一般使用前者;如果僅執行某一個操作則使用後者提供的靜態方法效率更
高一些。
DirectoryInfo的構造函數:DirectoryInfo di1 = new DirectoryInfo(@"c:\MyDir");
DirectoryInfo di2 = new DirectoryInfo("c:\\MyDir ");
下面舉例說明獲取一個目錄下的所有文件的名字和長度.
DirectoryInfo Info =
new DirectoryInfo("c:\\");
FileInfo []files = Info.GetFiles();
foreach (FileInfo text in files)
{
TextBox1.Text += text.Name;
TextBox1.Text +=" "+ text.Length;
TextBox1.Text += "\n";
}
FileInfo []files = Info.GetFiles();這個方法的作用是獲取當前目錄下所有的文件,不包含當中的子目錄.將所有的文件賦給一個文件類集合,再用Foreach循環來獲得每一個文件的名字和長度.
下一節將詳細介紹文件的讀取和寫入.