Synchronisationsproblem mit der Funktion SHFileOperation



  • 😕
    Hallo zusammen,

    ich habe folgendes Problem:

    Ich benutze die Funktion "SHFileOperation", um Dateien vom Verzeichnis A nach Verzeichnis B zu kopieren.

    Ich verwende auch die Funktion "ReadDirectoryChangesW", um benachrichtigt zu werden, falls das Programm Acrobat Distiller
    neue Dateien im Verzeichnis A ablegt.

    Wenn ich durch ReadDirectoryChangesW benachrichtigt werde, dass neue Dateien vorhanden sind,
    aber in der Zeit ist das Programm Acrobat Distiller noch am machen und tun.

    Wie kann ich jetzt solange warten bzw. überprüfen, dass kein Programm mehr auf dieses Verzeichnis operiert?? Dann
    weiss ich dass das Programm Adobe Distiller fertig ist. Danach kann ich mit kopieren anfangen.

    Vielen Dank im Voraus 🙂



  • Du könntest versuchen auf die Datei ein Handle zu öffnen. Das sollte dann eigentlich fehlschlagen, solange der Distiller noch in diese Datei schreibt. 🙄



  • Hi!

    Ich habe aber ein Problem. Ich darf nicht MFC Libraries verwenden.

    Wie kann ich jetzt mit einer C Funktion bzw. API feststellen,
    ob in diesem Verzeichnis Dateien vorhanden sind?

    Ich weiss leider vorher nicht, wie die Dateien heissen!

    Wie kann ich mit einer C Funktion die Dateien aus diesem Verzeichnis
    auflisten, dann weiss ich, wie sie heissen.

    Danke 🙂



  • Hilft dir vlt sowas...

    HANDLE              hFind; 
    WIN32_FIND_DATA     wData; 
    char                zPath[] = "C:\\*.*"; 
    BOOL found = true; 
    
    printf (" Auszugebendes Laufwerk: %s", zPath);
    
    hFind = FindFirstFile( zPath, &wData ); 
    
    while(hFind != INVALID_HANDLE_VALUE && found) 
      { 
       if(wData.dwFileAttributes == FILE_ATTRIBUTE_DIRECTORY) 
       std::cout << "Verzeichnis: " << wData.cFileName << std::endl;
       else
          std::cout << "Dateiname: " << wData.cFileName << std::endl; 
    
       found = FindNextFile(hFind,&wData);    
      } 
    FindClose( hFind );
    

    Zum Auflisten aller Dateien und Ordner.
    Hab ich hier irgendwo gefunden ich weiss nur nimmer wo 🙂



  • Ich danke Dir 😉

    Es funktioniert sehr gut.

    Ich habe noch zwei Fragen:

    1. Wie bekomme ich den kompletten Pfad der gefundene Datei angezeigt?

    2. Mit welcher Funktion "API" kann ich das Flag der Datei archiviert oder nicht archiviert setzen?

    Ich will die Dateien, die archiviert sind auf nicht archiviert setzen oder umgekehrt.

    Vielen Dank 🙂



  • Get/SetFileAttributes



  • Danke 😃


Anmelden zum Antworten