天天看點

C# - Path靜态類,對目錄或檔案路徑進行"操作"(*) 096

作者:源丁程式設計

Path類簡介

Path類是一個靜态類, 主要是用于對目錄或檔案的路徑進行"操作",但所有的"操作"對電腦磁盤上實際存在的目錄或檔案路徑不會産生實質的影響,操作的隻是一些字元串

Path類在System.IO的命名空間下,其後的幾個檔案操作類都在這個命名空間下

注意事項:

1)Path類的所有成員都是靜态的,是以無需建立路徑執行個體直接調用即可

2)Path類中的成員隻有字段與方法,沒有屬性

3)是對包含目錄或檔案路徑資訊的String執行個體實施操作,操作是以跨平台的方式執行的

4)路徑是提供目錄或檔案位置的字元串; 路徑不一定指向磁盤上實際存在的位置,也有可能映射到記憶體中或裝置上的位置

成員字段(可看做特殊标示符)

//用于分隔目錄或路徑的斜杠   /  
char c1 = Path.AltDirectorySeparatorChar;
//用于分隔目錄或路徑的反斜杠   /
char c2 = Path.DirectorySeparatorChar;
//用于在環境變量中的分隔符   ;
char c3 = Path.PathSeparator;
//用于卷的分隔符  :
char c4 = Path.VolumeSeparatorChar;
Console.WriteLine("{0} {1} {2} {3}", c1, c2, c3, c4);
//已經過時的标示符,暫時可以用,但不建議使用
char[] cs = Path.InvalidPathChars;
for (int i = 0; i < cs.Length; i++)
{
    Console.Write("{0}\t", cs[i]);
}           
C# - Path靜态類,對目錄或檔案路徑進行"操作"(*) 096

用于目錄,檔案,卷的分隔符

成員方法

成員方法 說明
string ChangeExtension(string path, string extension) 更改路徑字元串的擴充名
string Combine(params string[] paths) 将字元串數組組合成一個路徑
string Combine(string path1, string path2) 将兩個字元串組合成一個路徑
string GetDirectoryName(string path) 傳回指定路徑字元串的目錄資訊
string GetExtension(string path) 傳回指定路徑字元串的擴充名
string GetFileName(string path) 傳回指定路徑字元串的檔案名和擴充名
string GetFileNameWithoutExtension(string path) 傳回不具有擴充名的指定路徑字元串的檔案名
string GetFullPath(string path) 傳回指定路徑字元串的絕對路徑
char[] GetInvalidFileNameChars() 擷取包含不允許在檔案名中使用的字元的數組
char[] GetInvalidPathChars() 擷取包含不允許在路徑名中使用的字元的數組
string GetPathRoot(string path) 擷取指定路徑的根目錄資訊
string GetRandomFileName() 傳回随機檔案夾名或檔案名
string GetTempPath() 傳回目前使用者的臨時檔案夾的路徑
bool HasExtension(string path) 傳回路徑是否包含檔案的擴充名
bool IsPathRooted(string path) 傳回路徑字元串是否包含根
//使用幾個方法舉例說明

//Path類中方法隻是對字元串的操作,與實際檔案沒有任何關系,如下
 //string path = @"C:\abc\zxa\fdsf\a.txt";//檔案實際不存在
 ////1 "修改"檔案擴充名 a.txt一>a.jpg
 //path = Path.ChangeExtension(path, ".jpg");
 //Console.WriteLine(path);

 ////2 将兩個路徑連接配接起來,可以處理末尾的 \ 問題。
 //string s1 = @"c:\a\";
 //string s2 = "b.txt";
 //// string s3 = s1 + s2;

 //string s3 = Path.Combine(s1, s2);
 //Console.WriteLine(s3);           


 //string s1 = @"d:\abc\asd\zxc\a.txt";
 ////1.擷取路徑中的檔案名 a.txt
 //Console.WriteLine(Path.GetFileName(s1));
 ////2.擷取路徑中的目錄,不包含檔案名  d:\abc\asd\zxc
 //Console.WriteLine(Path.GetDirectoryName(s1));            
 ////3.擷取檔案名,不包含擴充名   a
 //Console.WriteLine(Path.GetFileNameWithoutExtension(s1));            
 ////4.隻擷取擴充名  .txt
 //Console.WriteLine(Path.GetExtension(s1));

 //擷取目前使用者的臨時目錄
 // Console.WriteLine(Path.GetTempPath());

 //擷取一個随機的檔案名,并在臨時目錄下建立這個檔案
//如果已有該臨時檔案名會建立其他的名稱
//假設 temp1 temp2 下次是temp3 提前建立此名稱将其占據
//下次建立臨時名稱時會跳過 temp3 建立 temp4
 Console.WriteLine(Path.GetTempFileName());

 //擷取一個随機的檔案名(也可以用作檔案夾名)
 Console.WriteLine(Path.GetRandomFileName());           

這個靜态類的字段與方法,單獨使用顯得有些雞肋,主要作用就是與後面的類相結合使用

繼續閱讀