nach FindFirst File Datei öffnen und kopieren



  • Hallo liebe C++ Gemeinde,
    leider bin ich noch ein blutiger Anfänger und versuche auf diesem Weg entsprechend Hilfe zu bekommen.

    Nach der Suche einer Datei in einem bestimmten Ordner (über W32Find Data Handle)

    HANDLE fHandle;
    WIN32_FIND_DATA wfd;
    fHandle=FindFirstFile("C:\\HL7\*.hl7",&wfd);

    möchte ich nun diese Datei öffnen bzw. kopieren. Leider finde ich keinen passenden Weg, das Handle als normale Datei zu öffnen.

    Kann man hier mittels Zeiger arbeiten?

    Eventuell kann mir jemand einen kleinen Denkanstoss (keine fertige Lösung) senden?

    Habe es bisslang erfolglos hiermit probiert:
    fstream quelldatei;
    string dateiname = string(wfd.cFileName);
    quelldatei.open(dateiname.c_str(), ios_base::in);



  • Datei öffnen:

    ifstream in{ "Datei.txt" }; // Wenn es kein menschenlesbarer Text ist, machst du noch ios::binary hin.
    

    Datei kopieren:

    ofstream out{ "Kopie-Datei.txt" }; // s.o.
    out << in.rdbuf();
    


  • Hier wirds vorgemacht: https://msdn.microsoft.com/en-us/library/windows/desktop/aa364418(v=vs.85).aspx

    Hast du geprüft, ob dein fHandle nach FindFirstFile gültig ist? Nur dann wurde ein passendes File gefunden und nur dann kann es geöffnet werden.



  • FindFirstFile und FindNextFile liefern nur den Dateinamen relativ zum Suchpfad, also den Dateinamen selbst. Für den vollständigen Dateinamen musst du das Verzeichnis voranstellen.
    Das Handle selbst ist ein Windows-Handle und nur für FindNextFile und FindClose relevant, als Benutzer kannst du da eigentlich nix mit anfanden, dazu hast du die Informationen aus WIN32_FIND_DATA .



  • Super, Danke für Eure Hilfe bzw. Beiträge, (der Pfadname war die entschedende Fehlstelle im Gehirn @DocShoe)..

    Besten Dank


Log in to reply