1. 程式人生 > >C++的基礎知識(五)--Path類、Directory類與File類

C++的基礎知識(五)--Path類、Directory類與File類

Path類與Directory類與File類的操作例項
1、Path類:
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
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
File和FileInfo 對檔案進行操作,讀檔案,寫檔案,追加檔案,判斷檔案是否存在,建立檔案,刪除檔案。

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();
}
}
}