DriveInfo und leerer Datenträger

j3$u5

Grünschnabel
Hallo Gemeinde,

ich möchte gern wissen ob ein optisches Laufwerk bereit ist. Dafür, so dachte ich, würde sich DriveInfo anbieten.

Code:
DriveInfo di = new DriveInfo("E");

if(di.IsReady)
{
      //
}

das funktioniert auch solange ich keinen leeren Datenträger in das Laufwerk einlege da bleibt der Wert false.

Gibt es eine Möglichkeit auch leere Datenträger abzuprüfen?

Danke im Voraus
 
Leere Datenträger oder ein leeres Dateisystem?

Für das Zweite einfach den Inhalt des Rootordners ermitteln, wenn keine Datei und kein Ordner da ist ists leer.

Für Ersteres...die gleiche Methode wäre einen Versuch wert.
Bei einer komplett unbeschriebenen Disk ohne Dateisystem müssten die verwendeten Funktionen nur Fehler zurückgeben.
Es gibt sicher noch eine bessere Lösung, aber falls kein anderer Vorschlag mehr kommt probier das einmal.
 
danke für deine antwort

es handelt sich um eine Fabrikneue DVD also kein Dateisystem
welche Methode meinst du wenn ich überprüfe ob der Root-Order Dateien enthält bekomme ich doch sowohl eine Ausnahme wenn keine Disc im Laufwerk ist oder wenn kein Dateisystem vorhanden ist und ich erkenne wieder nicht was was ist oder irre ich mich da?

Es muss doch zumindest eine WinApi geben das Autoplay erkennt es auch...
 
Natürlich, aber in Kombination mit deinem DriveInfo-Code oben könnte das doch was werden.

Dein Code unterscheidet laut dir zwischen a) Nichts drin und b) Irgendwas drin
Mein Zusatz unterscheidet zwischen a) Nichts oder Leeres Zeug drin und b) Etwas Beschriebenes drin

Brauchst nur beide kombinieren.
Wenn DriveInfo ja sagt und die Verzeichnisauflistung nein, ist eine leere Disk drinnen.
 
driveinfo unterscheidet nicht zwischen was drin und nichts drin in beiden fällen sagt DriveInfo.IsReady = false...
 
Ich fasse mal zusammen:
Im Laufwerk liegt eine unbeschriebene (=fabrikneue) DVD drin und die IsReady-Methode liefert False.
Du möchtest also gar nicht wissen, ob das Laufwerk für Lese/Schreiboperationen bereit ist (was du mit IsReady prüfst, wenn ich die MSDN richtig verstehe), sondern lediglich ob ein Datenträger eingelegt ist oder nicht?
 
so ungefähr ja nur dass das Laufwerk ja eig. bereit zum schreiben sein "sollte " wenn eine leere disc im laufwerk liegt oder?
 

Neue Beiträge

Zurück