Kopierprogramm soll auf genügend speicherplatz prüfen



  • Hallo,
    ich schreibe momentan ein Programm, welches Dateien auf verschiedene Laufwerke verteilt. Jetzt ist aber das Problem, dass das Programm vorher auf genügen Speicherplatz Prüfen soll, hat da jemand einen Plan wie das Funktioniert?!

    Ich benutze Borland Builder Version 6 und hier ein Ausschnitt aus dem Quelltext

    int TfrmMain::CopyDir(const AnsiString& src, const AnsiString& dest)
    {
    
        SHFILEOPSTRUCT sh;
        ZeroMemory(&sh, sizeof(sh));
        sh.hwnd = NULL;
        sh.wFunc = FO_COPY;
        int len1 = src.Length()+2;
        int len2 = dest.Length()+2;
        char* sDir = new char[src.Length()+2];
        char* dDir = new char[dest.Length()+2];
        strcpy(sDir , src.c_str());
        strcpy(dDir , dest.c_str());
        sDir[len1-1] = '\0';
        dDir [len2-1] = '\0';
        sh.pFrom = sDir;
        sh.pTo = dDir;
        sh.hNameMappings = NULL;
        sh.lpszProgressTitle = NULL;
        int res = SHFileOperation(&sh);
        delete sDir;
        delete dDir;
        return res;
    
    if(SHFileOperation(&sh)==0)
    
    {
    
    ShowMessage("Fertig! Bitte Prüfen Sie auf erfolgtes Kopieren! Danke!");
    
    }
    
    else
    
    {
    
    ShowMessage("Fehler!");
    
    }
    
    }
    

    Vllt. hat auch jemand ne Ahnung warum mein Kopieren immer erfolgreich ist!

    Würde mich auf zahlreiche Antworten Freuen.

    Mit freundlichen Grüßen

    Daniel H. :xmas1:



  • Danke für die Antworten....

    Wünsche allen ein Frohes neues!



  • D.H. schrieb:

    ich schreibe momentan ein Programm, welches Dateien auf verschiedene Laufwerke verteilt. Jetzt ist aber das Problem, dass das Programm vorher auf genügen Speicherplatz Prüfen soll, hat da jemand einen Plan wie das Funktioniert?!

    Google hilft.
    GetDiskFreeSpaceEx()

    D.H. schrieb:

    Vllt. hat auch jemand ne Ahnung warum mein Kopieren immer erfolgreich ist!

    Möglicherweise, weil du keine Wildcards benutzt?


Anmelden zum Antworten