.NET中的IO操作,經常需要調用一下幾個類。
1.FileStream類
文件流類,負責大文件的拷貝,讀寫。
2.Path類
Path類中方法,基本都是對字符串(文件名)的操作,與實際文件沒多大關系。
3.File類
File類可以進行一些對小文件拷貝、剪切操作,還能讀一些文檔文件。
4.Dirctory
目錄操作,創建文件、刪除目錄,獲取目錄下文件名等等。
1.ChangeExtension(path,".jpg")
改變文件後綴名!
2.Combine(s1,s2)
將兩個路徑連起來
3.獲取文件名的幾個方法
1)Path.GetFileName(s1); //獲取路徑中的文件名
2)Path.GetFileNameWithoutExtension(s1); //獲取文件名,不包括後綴名!
3)Path.GetDirectoryName(s1)//獲取路徑中的目錄不包括文件名。
4)Path.GetExtension(s1); //只獲取擴展名
4.GetFullPath("")
獲取完整路徑,根據相對路徑獲得絕對路徑。
5.臨時目錄
1)GetTempPath() //獲取當前用戶的臨時目錄
2)GetTempFileName() //獲取一個隨機的文件名,並在臨時目錄下創建這個文件。
3)GetRandomFileName() //僅獲取一個隨機文件名。
1.創建目錄
Directory.CreateDirectory(@"目錄");
2.判斷某個目錄是否存在某文件
string path =@"路徑";
if(Directory.Exists(path))
{
}
3.刪除目錄
1)Directory.Delete(path); //刪除空目錄 ,目錄下沒有文件了。
2)Directory.Delete(path,true); //不管空不空,都刪!
3)如果沒有目錄就會報異常,最好用if(Directory.Exists(path))判斷一下。
4.移動文件目錄
重命名目錄也用這個來做。
Directory.Move(@"c:\a",@"c:\abc");
5.DirectoryInfo
可以把文件夾當作對象來使用
DirectoryInfo dirInfo = new DirectoryInfo(@"path");
6.獲取當前目錄下的所有直接子目錄 和 直接子文件
//獲取目錄下的直接子目錄
String[] dirs =Direcotory.GetDirectories(@"目錄");
//獲取目錄下的直接子文件
String[] files =Directory.GetFiles(@"目錄");
7.獲取當前目錄下的目錄和文件 另一種方式
//獲取目錄下的直接子目錄
//String[] dirs =Direcotory.GetDirectories(@"目錄");
//獲取目錄下的直接子文件
//String[] files =Directory.GetFiles(@"目錄");
//—————————以上是6中的做法,他有一定性能上的問題。什麼問題呢?—————————————
使用String[] dirs =Direcotory.GetDirectories(@"目錄");是必須要等獲取了整個string之後,才能遍歷這個集合。
如果希望,讀到一條處理一條。
建議使用Directory.EnumerateFile()
1)EnumerateFile返回的是一個實現了IEnumerable接口的集合。實際上使用了迭代器模式。
2)SearchOption.ALLDirctories參數,會讓.EnumerateFile()遍歷所有子目錄下的文件。
1.拷貝
File.Copy("Source"," Target",true);
2.判斷是否存在
File.Exists(@"Source") ;
3.剪切
File.Move("Source","Targe");
4.創建
File.Create("path");
5.刪除
File.Delete("path"); //刪除,若沒有,不報錯!
6.讀操作
1)File.ReadAllLines("path",Encoding.Default); //返回一個string[]
2)File.ReadAllTest("path",Encoding.Default); //string
3)File.ReadAllBytes("path");
7.寫操作
1)File.WriteAllLines("path",new string[4],Encoding.Default);//按行寫入一個文件中。
2)File.WriteAllText("path","string");
3)File.WriteAllBytes("path",new byte[4]);
4)File.AppendAllText(); //將string追加到文件中。
8.返回FileStream的快捷方式
1)File.Open(string,FileMode); //返回一個FileStream
2)File.OpenRead(string,FileMode); //返回一個只讀的 FileStream
3)File.OpenWrite(string,FileMode); //返回一個只寫的 FileStream