Dateisystem mit Pascal erkennen???!!!

Dieses Thema im Forum "Programmieren" wurde erstellt von Bond, 25. Februar 2002.

Status des Themas:
Es sind keine weiteren Antworten möglich.
  1. Bond

    Bond Halbes Megabyte

    Registriert seit:
    17. November 2000
    Beiträge:
    875
    Hi Pascal Fans!
    Kann mir mal jemand eine Funktion schreiben, mit der man erkennen kann, welches Dateisystem ein Laufwerk hat? [Bitte verständliche Deklaration, damit ich sie auch benutzen kann.] Also, FAT16, FAT32, NTFS sollte sie mindestens unterscheiden können.
    Oder ist das technisch nicht möglich?
    -Bond-
     
  2. kazhar

    kazhar Viertel Gigabyte

    Registriert seit:
    21. Juni 2001
    Beiträge:
    4.420
    Hallo Bond,

    Ich hab da eine Lösung für Dich; Allerdings funktioniert sie so wie sie dasteht nur bei Real-Mode-Programmen. (wegen dem Software-Interrupt)

    <TT>Type
    MIDRecord = Record
    Dummy: Word; {Füllstoff; Funktion unbekannt}
    SerialNum: LongInt; {Serien-Nummer der Partition}
    VolLabel: Array [1..11] of Char; {Name der Partition}
    FatType: Array [1..8] of Char; {Dateisystem}
    end;

    Function Label_Fat(Var Mid : MidRecord; Drive : Word) : Boolean;
    Var Regs : Registers;
    begin
    FillChar(Mid, SizeOf(Mid), 0); {Record komplett löschen}
    FillChar(Regs, SizeOf(Regs), 0); {dito}
    With Regs DO
    begin
    AX := $440D; {Interruptaufruf konfigurieren}
    BX := Drive;
    CX := $0866;
    DS := Seg(Mid);
    DX := Ofs(Mid);
    Intr($21, Regs); {SoftInterrupt#21-Aufruf = "MsDos"}
    Case AX of
    $01: Label_Fat:=False; {ein Fehler ist aufgetreten}
    $02: Label_Fat:=False;
    $05: Label_Fat:=False;
    else
    Label_Fat:=True; {alles OK}
    end;
    end;
    end;
    </TT>

    Der Parameter "Mid" liefert das Ergebnis zurück, mit "Drive" wird das Laufwerk übergeben (wobei wie üblich 1 für A:, 2 für B:, 3 für C: usw. steht). Liefert die Funktion TRUE zurück, dann wurde sie fehlerfrei ausgeführt (FALSE deutet z.B. auf eine nicht eingelegte Diskette oder einen nicht belegten Laufwerksbuchstaben hin)

    mfg Kazhar
     
Status des Themas:
Es sind keine weiteren Antworten möglich.

Diese Seite empfehlen