Una cosa que en realidad puedo malinterpretar es que quieres la unidad del sistema, pero al usar "windir" obtendrás la carpeta de Windows. Por lo tanto, si necesita una forma segura para obtener la carpeta de Windows, debe usar la antigua función API GetWindowsDirectory.
Aquí está la función preparada para el uso de C#. ;-)
[DllImport("kernel32.dll", SetLastError = true, CharSet = CharSet.Auto)]
static extern uint GetWindowsDirectory(StringBuilder lpBuffer, uint uSize);
private string WindowsDirectory()
{
uint size = 0;
size = GetWindowsDirectory(null, size);
StringBuilder sb = new StringBuilder((int)size);
GetWindowsDirectory(sb, size);
return sb.ToString();
}
Así que si realmente necesita la unidad en la que se está ejecutando Windows, que posteriormente podría llamar
System.IO.Path.GetPathRoot(WindowsDirectory());
¡Oye, eso es lo que dije! –
@Richard: Eso es correcto, pero en lugar de solo señalar la dirección concreta, agregué una muestra sobre cómo se puede usar la función. – Oliver