geöffnete datei kopieren ?



  • folgendes problem:

    ich habe eine datei, die ich nicht kopieren kann, solange sie geöffnet ist.
    allerdings habe bzw. weiss ich nicht wie ich diese datei (sie wurde von einem anderen programm geöffnet) schliessen kann.

    gibts eine möglichkeit sie trotzdem zu kopieren (zu schliessen)??
    (Der Pfad zur Datei bzw. Dateiname ist mir bekannt)

    wenn ja, bitte ich um hilfe, da ich das dringend benötige, aber bisher in der msdn nichts passendes gefunden habe.



  • Läuft also das Programm, dass diese Datei geöffnet hat noch, während Du kopieren möchtest? Dann klappt's nur, wenn Du mit nur-lesend und passenden share-Flags diese Datei öffnest. Voraussetzung ist allerdings, dass das Programm das Lesen dieser Datei, bei seiner "Open"-Methode auch gestattet.



  • das programm, welches das file öffnet, is net von mir.
    mein programm soll in gewissen abständen ein backup vom file machen, da mir schon ein paar mal beim arbeiten mit dem "fremdprogramm" der rechner "davonflog", und somit die eingegebenen daten.
    einzig der filename und das verzeichnis der geöffneten datei sind mir bekannt.
    es wäre toll, wenn es einen weg geben würde, für die zeit der kopie das file zuschliessen, bzw. das offene file irgendwie mit MFC kopieren zu können.



  • CString strFile(_T("C:\..."));
    CFile myfile;
    if(myfile.Open(strFile, CFile::modeRead | CFile::shareDenyWrite, NULL)
    {
      // öffnen hat geklappt, kannst kopieren
      myfile.Close();
    }
    else
    {
      // öffnen hat nicht geklappt, das Programm erlaubt keinen Zugriff auf diese
      // Datei, wenn sie geöffnet ist -> mehr wüsste ich auch nicht dazu 
    }
    


  • diese variante hatte ich schon probiert.....
    da ich das file aber nicht öffnen kann (kein zugriff, weil offen) suche ich nun eine ander möglichkeit....


Anmelden zum Antworten