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]);
}
用于目錄,檔案,卷的分隔符
成員方法
成員方法 | 說明 |
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());
這個靜态類的字段與方法,單獨使用顯得有些雞肋,主要作用就是與後面的類相結合使用