cref - remarks c#
C#¿Cómo saber si una ruta dada representa una unidad raíz? (5)
¿Cómo puedo saber si un directorio determinado es un disco raíz?
(además de verificar si su ruta es igual a "A:", "B:", "C:", etc.)
Aquí hay otra forma que encontré:
public static bool IsLogicalDrive(string path)
{
return Directory.GetLogicalDrives().Contains(path);
}
Éste realmente verifica si la ruta dada representa una de las unidades lógicas del sistema actual.
Compruebe si DirectoryInfo.Parent es nulo o no
DirectoryInfo d = new DirectoryInfo("");
if(d.Parent == null) { IsRoot = true; }
también puede obtener la raíz utilizando DirectoryInfo.Root;
Es mucho más complicado que verificar la propiedad de los padres.
Determinar si un directorio es una carpeta montada
Un enfoque sería ver si GetVolumeNameForVolumeMountPoint
tiene éxito.
Por supuesto, eso no funcionará para la ruta de la red, y determinar si una unidad de red representa el directorio raíz de una partición puede no ser posible de forma remota.
Prueba esto :
if (Path.GetPathRoot(location) == location) {...}
También aquí hay otra forma que encontré:
public static bool IsLogicalDrive(string path)
{
return (new DirectoryInfo(path).FullName == new DirectoryInfo(path).Root.FullName;
}
si esta función devuelve verdadero, significa que esa ruta representa una unidad raíz.