PathSeparatorフィールドを参照することで、現在の実行環境でのパス区切り文字を取得することができます。
ディレクトリ区切り文字(DirectorySeparatorChar)は単一のパス内におけるディレクトリ階層の区切りとして用いられる文字であるのに対して、パス区切り文字(PathSeparator)は複数パスを1行で記述する際の各パスの区切りとして用いられる文字を表します。 例えば環境変数PATH
で複数のパスを設定したい場合には、パスひとつひとつの間をこの文字で区切った上で連結します。 Windowsではパス区切り文字に;
、UNIX系では:
が用いられます。
Pathクラスでは複数パスを連結・分割するようなメソッドは直接提供されませんが、環境変数を扱う場合などにはこのフィールドから適切な区切り文字を取得することができます。
Path.PathSeparatorフィールドの値に基づいて環境変数PATHに設定されているパスを分割する
using System;
using System.IO;
class Sample {
static void Main()
{
// 環境変数PATHに設定されている値を取得する
var envvar_path = Environment.GetEnvironmentVariable("PATH");
Console.WriteLine($"PATH={envvar_path}");
Console.WriteLine();
// 設定されているパスを分割して表示する
foreach (var path in envvar_path.Split(Path.PathSeparator)) {
Console.WriteLine(path);
}
}
}
実行結果例
PATH=C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\System32\Wbem;C:\WINDOWS\System32\WindowsPowerShell\v1.0\;C:\Program Files\Microsoft\Web Platform Installer\;C:\Program Files\Microsoft SQL Server\130\Tools\Binn\;C:\Program Files\dotnet\;C:\WINDOWS\System32\OpenSSH\;C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\;C:\Program Files\TortoiseSVN\bin;C:\Program Files\TortoiseGit\bin;C:\Users\smdn\AppData\Local\Microsoft\WindowsApps;C:\Users\smdn\.dotnet\tools;C:\Users\smdn\AppData\Local\Microsoft\WindowsApps;C:\Users\smdn\.dotnet\tools;C:\Users\smdn\AppData\Local\Programs\Microsoft VS Code\bin C:\WINDOWS\system32 C:\WINDOWS C:\WINDOWS\System32\Wbem C:\WINDOWS\System32\WindowsPowerShell\v1.0\ C:\Program Files\Microsoft\Web Platform Installer\ C:\Program Files\Microsoft SQL Server\130\Tools\Binn\ C:\Program Files\dotnet\ C:\WINDOWS\System32\OpenSSH\ C:\Program Files\Microsoft SQL Server\Client SDK\ODBC\170\Tools\Binn\ C:\Program Files\TortoiseSVN\bin C:\Program Files\TortoiseGit\bin C:\Users\smdn\AppData\Local\Microsoft\WindowsApps C:\Users\smdn\.dotnet\tools C:\Users\smdn\AppData\Local\Microsoft\WindowsApps C:\Users\smdn\.dotnet\tools C:\Users\smdn\AppData\Local\Programs\Microsoft VS Code\bin
実行結果例
PATH=/home/smdn/.local/bin:/home/smdn/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin:/home/smdn/.dotnet/tools /home/smdn/.local/bin /home/smdn/bin /usr/local/sbin /usr/local/bin /usr/sbin /usr/bin /sbin /bin /usr/games /usr/local/games /snap/bin /home/smdn/.dotnet/tools
環境変数を取得・設定する方法などについては、環境変数を参照してください。