C# - よく使うクラス - System.IO - Path

 クラウディア
1. 概要
2. GetDirectoryName ディレクトリ情報
3. GetExtension 拡張子
4. GetFileName ファイル名
5. GetFullPath・GetPathRoot 絶対パス・ルートパス
6. GetFileNameWithoutExtension 拡張子なしファイル名
7. DirectoryInfo.Exists ディレクトリ有無
8. FileInfo ファイルアクセスクラス

1. 概要

 「ファイルまたはディレクトリのパス情報を格納する String インスタンスで操作を実行します。 これらの操作は、プラットフォーム間で実行されます。」だそうであります。  本ページは、下記のサイトを参考にさせていただきました。
Path クラス (System.IO) 

2. GetDirectoryName ディレクトリ情報

 「文字範囲で表された、指定されたパスのディレクトリ情報を返します。」と説明されておりますな。

using System;

public class Path
{
    static public void Main ()
    {
		string FullPath = "/home/hogehoge/lang/csharp/system/io/path/GetDirectoryName.cs";

        Console.WriteLine(System.IO.Path.GetDirectoryName(FullPath));
    }
}
 てなソースを書いて実行すると、下記の結果が得られます。

/home/hogehoge/lang/csharp/system/io/path

3. GetExtension 拡張子

 フルパスのファイル名からピリオド「.」を含む、拡張子を取得します。

using System;

public class Path
{
    static public void Main ()
    {
		string FullPath = "/home/hogehoge/lang/csharp/system/io/path/GetDirectoryName.cs";

        Console.WriteLine(System.IO.Path.GetExtension(FullPath));
    }
}
 てなソースを書いて実行すると、下記の結果が得られます。

.cs

4. GetFileName ファイル名

 フルパスのファイル名から拡張子を含む、ファイル名を取得します。

using System;

public class Path
{
    static public void Main ()
    {
		string FullPath = "/home/hogehoge/lang/csharp/system/io/path/GetDirectoryName.cs";

        Console.WriteLine(System.IO.Path.GetFileName(FullPath));
    }
}
 てなソースを書いて実行すると、下記の結果が得られます。

GetDirectoryName.cs

5. GetFullPath・GetPathRoot 絶対パス・ルートパス

 「GetFullPath()」は、絶対パスを取得し、「GetPathRoot()」は、ルートパスを取得します。  「GetFullPath()」には、何やら、第二引数があって「完全修飾ベース パス」だそうなのであるが、まだ使ったことはありません(2022年3月24日)。  特筆すべきなのは、ファイルやディレクトリの存在有無にかかわらず、返してくれます。

using System;

public class Path
{
    static public void Main ()
    {
        Console.WriteLine(System.IO.Path.GetFullPath("sample.txt"));
    }
}
 てなソースを書いて。

/home/hogehoge/
 で実行すると、下記の結果が得られます。

/home/hogehoge/sample.txt
 「GetPathRoot()」。

using System;

public class Path
{
    static public void Main ()
    {
		string FullPath = @"C:\Python38\python.exe";
        Console.WriteLine(System.IO.Path.GetPathRoot(FullPath));
    }
}
 てなソースを書いて実行すると、下記の結果が得られます。

C:\

6. GetFileNameWithoutExtension 拡張子なしファイル名

 フルパスのファイル名からパスをはずし、拡張子なしのファイル名を取得します。

7. DirectoryInfo.Exists ディレクトリ有無

 「DirectoryInfo」自体は。
ディレクトリとサブディレクトリを作成、削除、および列挙するためのインスタンス メソッドを公開します。 このクラスは継承できません。
 だそうです。  「Exists」プロパティ(bool)で、ディレクトリの有無を示します。

System.IO.DirectoryInfo dirInfo = new System.IO.DirectoryInfo(System.IO.Path.GetDirectoryName(ファイルのフルパス)!);

if (dirInfo.Exists == false)
{
	// フォルダがなければ作成する
	dirInfo.Create();
}
 てな書き方をします。

8. FileInfo ファイルアクセスクラス

 前項のファイル版、というところです。
ファイルの作成、コピー、削除、移動、および開くためのプロパティとインスタンス メソッドを提供し、FileStream オブジェクトの作成に役立ちます。 このクラスは継承できません。
 だそうです。  「Exists」プロパティ(bool)で、ファイルの有無を示します。  「IsReadOnly」プロパティ(bool)で、読み取り専用かどうかを示します。
earthcar(アースカー)
葬送のフリーレン Prime Video
Amazonギフトカード