GetDiskFreeSpaceEx() benutzen



  • Hallo alle zusammen,

    ich möchte gerne den freien Platz auf der Festplatte ermitteln mit der Funktion GetDiskFreeSpaceEx(), leider kann nicht richtig dahinter kommen.
    Kann mir jemand genau erklären. Meine Code:

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    //ein Variable für den Platz
    unsigned __int64 FreeKilo;
    
    //variablen für Parameterliste 
    ULARGE_INTEGER FreeBytes;
    ULARGE_INTEGER TotalNumberOfBytes;
    ULARGE_INTEGER TotalNumberOfFreeBytes;
    
    //Aufruf der Funktion
    GetDiskFreeSpaceEx("C:/",&FreeBytes,&TotalNumberOfBytes,&TotalNumberOfFreeBytes);
    
    FreeKilo = (FreeBytes.QuadPart) /(1024);
    
    Label1->Caption = FreeKilo;
    
    }
    

    Kommt folgenede Fehlermeldung:

    [C++ Fehler] Unit1.cpp(26): E2015 Mehrdeutigkeit zwischen '__stdcall GetDiskFreeSpaceEx(const char *,_ULARGE_INTEGER *,_ULARGE_INTEGER *,_ULARGE_INTEGER *)' und 'Sysutils::GetDiskFreeSpaceEx'
    

    Ich hab doch meine Parameter der Funktion übergeben.
    Warum ist die Meldung?



  • **::**GetDiskFreeSpaceEx(...);

    Aber warum nicht einfach DiskFree() verwenden?



  • Danke für den Tipp!

    Finktioniert super und ist absolut einfach.



  • void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    //ein Variable für den Platz
    unsigned __int64 FreeKilo;
    
    //variablen für Parameterliste 
    ULARGE_INTEGER FreeBytes;
    ULARGE_INTEGER TotalNumberOfBytes;
    ULARGE_INTEGER TotalNumberOfFreeBytes;
    
    //Aufruf der Funktion
    ::GetDiskFreeSpaceEx("C:/",&FreeBytes,&TotalNumberOfBytes,&TotalNumberOfFreeBytes);
    
    FreeKilo = (FreeBytes.QuadPart) /(1024);
    
    Label1->Caption = FreeKilo;
    
    }
    

    So funktioniert auch dies. 😉



  • /edit
    Sorry. In falsches Fenster gepostet.



  • Heinzelmännchen schrieb:

    So funktioniert auch dies.

    Tatsächlich? Wie bist du da nur drauf gekommen ...


Anmelden zum Antworten