Prüfen ob eine von einem anderen Programm genutzte Datei vorhanden ist



  • Hallo!

    Ich nutze zum überprüfen, ob eine Datei vorhanden ist, die Methode open von CFile und erkenne es anhand des Rückgabewertes. Nun habe ich das Problem, das eine von einem anderen Programm genutzte Datei nicht durch open geöffnet werden kann, obwohl sie vorhanden ist. Gibt es noch eine andere Möglichkeit zu prüfen, ob eine Datei existiert, bei der diese Problem umgangen wird?

    Besten Dank!



  • Ich weiß nicht in wie fern die MFC das unterstützt, aber zumindest mit der WinAPI kannst du bei CreateFile (ja auch für das Öffnen wird CreateFile benützt...) angeben, mit welchen Rechten du die Datei öffnest und wie das mit den Anderen ist 🙂

    MfG SideWinder



  • mit der mfc kenn ich mich auch nicht aus. die folgende win32 funktion sollte das problem aber lösen:

    #include <windows.h>
    
    bool
    FileExists (LPCTSTR FileName)
    {
      HANDLE hFile=CreateFile(FileName,0,FILE_SHARE_WRITE,NULL,OPEN_EXISTING,0,NULL);
    
      if(hFile!=INVALID_HANDLE_VALUE)
      {
        CloseHandle(hFile);
        return true;
      }
    
      return false;
    }
    


  • Dieser Thread wurde von Moderator/in HumeSikkins aus dem Forum C++ in das Forum MFC mit dem Visual C++ verschoben.

    Im Zweifelsfall bitte auch folgende Hinweise beachten:
    C/C++ Forum :: FAQ - Sonstiges :: Wohin mit meiner Frage?

    Dieses Posting wurde automatisch erzeugt.



  • CFileFind itsFile;
    if (itsFile.FindFile("dein dateiname"))
    {
    	// Ist vorhanden
    }
    

Log in to reply