Pathタイプの拡張方法z

6366 ワード

システムに基づいて書きましたIO.ファイルシステムパスをすばやく操作するためのPathタイプメソッドの拡張タイプ.次の図を示します.
その中には、Pathタイプの静的メソッドを直接呼び出す方法がたくさんあります.例えばApendPathメソッドの内部ではPathが直接呼び出される.Combine.これらの方法はこれ以上紹介する必要はありません.いくつかの説明方法を見てみましょう.
ToDirectoryメソッドでは、ファイルパスがフォルダパスに格納され、次のような結果が返されます.
var path =@"C:\a\b\c.jpg"; Console.WriteLine(path.ToDirectory(@"D:\   "));

出力:
D:\   \c.jpg

 
ToDirectoryメソッドでは、いくつかの列のファイルをフォルダパス内に配置することもできます.ここではソースフォルダパスも必要です.たとえば、「C:フォルダ」内のいくつかのファイルを「D:新しいフォルダ」にコピーしたい場合、ソースフォルダパスは「C:フォルダ」です.この方法でファイルパスの変換を完了します.次のコードです.
var paths =newstring[] { @"c:\   \a.jpg", @"c:\   \b.cs", @"c:\   \    \test.txt", @"c:\   \    \     \haha" }; var destPaths = paths.ToDirectory(@"D:\    ", @"C:\   "); foreach (var file in destPaths) Console.WriteLine(file);

出力:
D:\    \a.jpg D:\    \b.cs D:\    \    \test.txt D:\    \    \     \haha

 
ChangeFileNameメソッドとChangeFileNameOnlyメソッドでは、拡張子は変更されません.例:
var path =@"C:\test.jpg"; Console.WriteLine(path.ChangeFileName("mgen")); Console.WriteLine(path.ChangeFileNameOnly("mgen"));

出力:
C:\mgen C:\mgen.jpg

 
GetDirectoryPathメソッドの用途とPath.GetDirectoryNameメソッドは一致しており、Path.GetDirectoryNameメソッドとは異なり、常に上位レベルのディレクトリが返されます.見てみましょうGetDirectoryNameメソッドの質問:
var path1 =@"C:\test\mgen"; var path2 =@"C:\test\mgen\"; Console.WriteLine(Path.GetDirectoryName(path1)); Console.WriteLine(Path.GetDirectoryName(path2));

出力:
C:\test C:\test\mgen

2番目のパスの一番後ろに""があるため、Path.GetDirectoryNameメソッドを呼び出すと、これしか削除されません.
一方、GetDirectoryPathメソッドの実行では、「」が先に削除されるため、GetDirectoryPathメソッドは常に上位レベルのディレクトリを返します.次のGetDirectoryPathメソッドの実行は、次のようになります.
publicstaticstring GetDirectoryPath(thisstring path) {     path = path.TrimEnd(Path.DirectorySeparatorChar); returnPath.GetDirectoryName(path); }