Подтвердить что ты не робот

С# Как узнать, является ли данный путь корневым диском?

Как узнать, является ли данный каталог корневым диском?

(кроме проверки, если его путь равен "A:", "B:", "C:" и т.д.)

4b9b3361

Ответ 1

Проверьте, имеет ли каталог Directory.Parent значение null или нет

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

вы также можете получить корень с помощью DirectoryInfo.Root;

Ответ 2

Это намного сложнее, чем проверка свойства Parent.

Определение того, является ли каталог прикрепленной папкой

Один из подходов - проверить, успешно ли GetVolumeNameForVolumeMountPoint.

Конечно, это не будет работать для сетевого пути, и определить, может ли сетевой диск представлять корневую директорию раздела, возможно, не удастся удаленно.

Ответ 3

Попробуйте this:

if (Path.GetPathRoot(location) == location) {...}

Ответ 4

Также здесь был найден другой способ:

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

если эта функция возвращает true, значит, данный путь представляет собой корневой диск!

Ответ 5

Здесь я нашел другой способ:

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

Это фактически проверяет, является ли данный путь одним из текущих системных логических дисков.