DriveInfo.GetDrives() für Laufwerke ohne Laufwerksbuchstabe



  • Mit DriveInfo.GetDrives() bekomme ich alle meine HDD-Laufwerke angezeigt, denen ich einen Buchstaben zugeordnet habe.
    Meine externen HDDs haben keinen Buchstaben, die sind über einen Ordner zugewiesen. 2 x 4 davon stecken jeweils in einer icy-Box.
    Die anderen sind per USB-Kabel angeschlossen.
    Ich habe einen Ordner V:\ExtHD und in diesem für jede externe HDD einen Unterordner, der als Verweis <JUNCTION> bzw. <LINK> zu den USB-HDDs dient. Das kann man bekanntlich in der Datenträgerverwaltung so einrichten.

    <JUNCTION> Fantec147NTFS
    <JUNCTION> Fantec588Fat32
    
    <JUNCTION> icy1pSea10TB
    <JUNCTION> icy1rSea6TB
    <JUNCTION> icy1sSea6TB
    <JUNCTION> icy1ySea4TB
    
    <JUNCTION> icy2uWd6TB
    <JUNCTION> icy2vWD4TB
    <JUNCTION> icy2xOs10TB
    <JUNCTION> icy2zSea4TB
    
    <JUNCTION> usb3oTosh3TB
    <JUNCTION> usb3qSea3TB
    <JUNCTION> usb3tHurr4TB
    <JUNCTION> usb3wWD4TB
    

    Ich möchte nun gern jeweils den freien und belegten Platz und die Laufwerksgröße ermitteln.
    Gibt es da eine Möglichkeit ähnlich GetDrive() ?
    Dort kann man ja TotalSize und TotalFreeSpace auslesen.



  • Da wirst du wohl direkt die WinAPI-Funktionen benutzen müssen, z.B. GetDiskFreeSpaceExW.
    Von C# aus mittels P/Invoke: GetDiskFreeSpaceEx.



  • @Th69
    DANKE für diesen Hinweis, es klappt wunderbar.
    Ich bekomme genau die Informationen, die ich haben möchte.

    Mit

       DriveInfo[] aDrives = DriveInfo.GetDrives();
    

    kann ich alle Laufwerke, denen ein Buchstabe zugeordnet ist, auslesen.
    Da ist auch das DVD-Laufwerk dabei und die USB-Laufwerke, wenn sie einen Buchstaben haben.

    Kann man auch alle Laufwerke auslesen, die keinen Buuchstaben haben ?
    Die Datenträgerverwaltung oder DiskPart zeigen diese ja auch an.

    Microsoft DiskPart-Version 10.0.19041.964
    
    Copyright (C) Microsoft Corporation.
    Auf Computer: R980
    
    DISKPART> list disk
    
      Datenträger ###  Status         Größe    Frei     Dyn  GPT
      ---------------  -------------  -------  -------  ---  ---
      Datenträger 0    Online         2794 GB  1024 KB        *
      Datenträger 1    Online         1863 GB  1024 KB        *
      Datenträger 2    Online         5589 GB      0 B        *
      Datenträger 3    Online          931 GB  3072 KB        *
      Datenträger 4    Online          931 GB  1024 KB        *
      Datenträger 5    Online          931 GB      0 B        *
      Datenträger 6    Online         3726 GB  1024 KB        *  <== ab hier haben sie keinen Buchstaben
      Datenträger 7    Online         2794 GB  1024 KB        *
      Datenträger 8    Online         2794 GB  1024 KB        *
      Datenträger 9    Online         3726 GB  1024 KB        *
      Datenträger 10   Online         5589 GB  1024 KB        *
      Datenträger 11   Online         3726 GB  1024 KB        *
      Datenträger 12   Online            9 TB  1024 KB        *
      Datenträger 13   Online         3726 GB  1024 KB        *
      Datenträger 14   Online            9 TB  1024 KB        *
      Datenträger 15   Online         5589 GB      0 B        *
      Datenträger 16   Online         5589 GB      0 B        *
      Datenträger 17   Online         3726 GB  1024 KB        *
    
    DISKPART>
    


  • So genau habe ich mich damit auch noch nicht beschäftigt.
    Auf die Schnelle habe ich aber folgende Links gefunden:

    Edit:
    In How to list physical disks? stehen auch einige Möglichkeiten (besonders Zugriff auf "\\.\PhysicalDriveX" sowie mittels Registry in HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\disk\Enum).


Log in to reply