34

特定のディレクトリがルートドライブであるかどうかを確認するにはどうすればよいですか?

(パスが「A:」、「B:」、「C:」などに等しいかどうかを確認する以外)

4

5 に答える 5

36

DirectoryInfo.Parentがnullかどうかを確認します

DirectoryInfo d = new DirectoryInfo("");
if(d.Parent == null) { IsRoot = true; }

DirectoryInfo.Rootを使用してルートを取得することもできます。

于 2011-02-18T23:16:55.537 に答える
9

これを試してください:

if (Path.GetPathRoot(location) == location) {...}
于 2011-02-18T23:22:02.100 に答える
5

Parentプロパティをチェックするよりもはるかに複雑です。

ディレクトリがマウントされたフォルダであるかどうかの判断

GetVolumeNameForVolumeMountPoint1つのアプローチは、成功するかどうかを確認することです。

もちろん、これはネットワークパスでは機能しません。ネットワークドライブがパーティションのルートディレクトリを表しているかどうかをリモートで判断できない場合があります。

于 2011-02-19T00:22:13.467 に答える
3

また、私が見つけた別の方法は次のとおりです。

 public static bool IsLogicalDrive(string path)
 {
     return (new DirectoryInfo(path).FullName == new DirectoryInfo(path).Root.FullName);
 }

この関数がtrueを返す場合は、指定されたパスがルートドライブを表していることを意味します。

于 2014-10-16T09:02:22.887 に答える
1

これが私が見つけた別の方法です:

public static bool IsLogicalDrive(string path)
{
    return Directory.GetLogicalDrives().Contains(path);
}

これは、指定されたパスが現在のシステムの論理ドライブの1つを表しているかどうかを実際にチェックします。

于 2011-02-24T03:35:03.343 に答える