Path 對路徑 字符串進行操作
獲得後綴
能合並路徑
獲取文件名
Directory和DirectoryInfo 對目錄進行操作
判斷目錄是否存在
創建目錄
刪除目錄
獲取目錄下所有的子目錄
獲取目錄下所有的子文件
File和FileInfo 對文件進行操作
讀文件
寫文件
追加文件
判斷文件是否存在
創建文件
刪除文件
1、Path類
復制代碼 代碼如下:
using System;
using System.IO;//目錄和文件操作的名稱空間
namespace _11_Path類 {
class Program {
static void Main(string[] args) {
string path = "c:\\abc\\1.txt" ;
//注意這裡是對路徑字符串的操作 而不是真正的文件 “修改”支持字符串層面的,沒有真的給文件改名
path = Path.ChangeExtension(path, "avi" );//ChangeExtension()修改文件後綴名1.avi c:\\abc\\1.avi
//將兩個路徑合成一個路徑,比用+好,可以方便解決是不是加斜線的問題,自動處理路徑分隔符的問題
path = Path.Combine("c:\\abc\\def\\" , "1.jpg"); //c:\abc\def\1.jpg
//得到文件所在文件夾的位置 同樣是從字符串的角度去處理
path = Path.GetDirectoryName(path);//c:\abc
path = Path.GetExtension(path);//擴展名 .txt
path = Path.GetFileName(path);//文件名.後綴名 1.txt
path = Path.GetFileNameWithoutExtension(path);//不含後綴的文件名 1
path = Path.GetFullPath("11-Path類.exe" );//文件全路徑(相對文件的全路徑 一般也不用此方法) F:\PIZIYIMAO\11-Path類\bin\Debug\11-Path類.exe
path = Path.GetTempFileName();//臨時文件夾保存路徑 自動創建文件 C:\Documents and Settings\PIZIYIMAO\Local Settings\Temp\tmp5E.tmp
path = Path.GetTempPath();//獲取臨時文件夾保存路徑 C:\Documents and Settings\PIZIYIMAO\Local Settings\Temp\
Console.WriteLine(path);
Console.Read();
}
}
}
2、操作目錄類 Directory與DirectoryInfo
復制代碼 代碼如下:
using System;
using System.IO;
namespace _12_Directory {
class Program {
static void Main( string[] args) {
DirectoryInfo dic = new DirectoryInfo( "c:\\abc" );
//dic.Name; //獲取文件名
//dic.FullName; //獲取文件全路徑 功能要比Directory強大 區別在於它是實例類 而後者是靜態類
Directory .CreateDirectory("c:\\abc" ); //創建文件夾
Directory .CreateDirectory("c:\\abc\\1\\2\\3\\4\\5\\6\\7" ); //連續創建多級文件夾
if (Directory .Exists( "c:\\abc")) //判斷是否存在文件夾
{
Directory .Delete("c:\\abc" ); //如果存在則刪除 如果文件夾為空能正常刪除 不為空則會報錯 "目錄不是空的"
Directory .Delete("c:\\abc" , true); //true則指定 如果文件夾不為空 同樣執行刪除操作
}
string [] paths = Directory .GetDirectories( "c:\\abc"); //獲取目錄中所有子目錄名稱 注意只取下一級別 即c:\abc\1 如獲取windows文件夾下所有文件夾路徑可以使用此方法
string [] paths2 = Directory .GetDirectories( "c:\\windows", "$*" );//以上方法重載實現 檢索以$開頭的文件
string [] paths3 = Directory .GetDirectories( "c:\\abc", "*" , SearchOption .AllDirectories);//通配符查找文件夾中符合條件的文件 包括子級文件夾
foreach (string path in paths) {
Console .WriteLine(path);
}
string [] files = Directory .GetFiles( "c:\\windows"); //遍歷文件夾下的所有文件
string [] files2 = Directory .GetFiles( "c:\\windows", "*.ini" , SearchOption .AllDirectories);//通配符查找目錄下的文件 用法類似於GetDirectories
foreach (string file in files2) {
Console .WriteLine(file);
}
//目錄操作最重要的就是 GetFiles和GetDirectories方法
Directory .GetParent("c:\\abc\\1\\2\\3\\4\\5\\6\\7" ); //返回7文件夾的父級目錄 c:\abc\1\2\3\4\5\6
Console .Read();
}
}
}
3、文件類File
復制代碼 代碼如下:
using System;
using System.IO;
using System.Text;
namespace _13_File {
class Program {
static void Main( string[] args) {
//file靜態類 使用file類時需要注意文件默認編碼的使用 如果編碼不正確 文件中會顯示亂碼
File .AppendAllText("c:\\1.txt" , "gb1232"); //向c:\\1.txt文件中追加 內容“gb2312”
//如果存在寫入文件
if (File .Exists( "c:\\1.txt")) {
File .WriteAllText("c:\\1.txt" , "寫入中文有時會出現亂碼 需要使用第三個參數 指定Encoding文件的編碼格式 Default為默認格式" ,Encoding .Default);//WriteAllText是徹底的覆蓋 而AppendAllText是追加
}
//File.ReadAllText();//讀取文件不再列舉 以下方法查看文檔不再舉例
//string[] ReadAllLines(string path) //讀取文本文件到字符串數組中
//string ReadAllText(string path) //讀取文本文件到字符串中
//WriteAllLines(string path,string[] contents),//將字符串數組逐行保存到文件path中,會覆蓋舊內容。
FileInfo fi = new FileInfo( "c:\\2.txt" );//實例化的類 功能比file要強大
fi.AppendText(); //它有很多的方法 和屬性 自己查看 文檔
Console .Read();
}
}
}