wie kann ich Verzeichnis überwachen?



  • 😕

    Hallo zusammen,

    ich würde gerne ein Thread schreiben. In diesem Thread will
    ich ein bestimmtes Verzeichnis überwachen. Ein anderes Programm erstellt
    ein Paar PDF-Files in diesem Verzeichnis.

    Wie kann ich jetzt feststellen, dass das Verzeichnis irgendwelche Files beinhaltet
    und wie kann ich feststellen, dass das andere Programm schon mit der Erstellung fertig ist?

    Kann ich irgendwie prüfen, ob das andere Programm mit der Erstellung fertig ist?

    Anschliessend will ich die Inhalte woanders kopieren.

    Gibt unter C/C++ Funktionen dafür?

    Vielen Dank im Voraus 🙂



  • Hallo,

    so kannst du in einen odner dateien finden.

    CFileFind finder;
    	CString strWildcard(m_iFld);
    	strWildcard += _T("\\*.*");
    	BOOL bWorking = finder.FindFile(strWildcard);
    	while (bWorking)
    	{
    		bWorking = finder.FindNextFile();
    		if (finder.IsDots())
    			continue;
    		if (finder.IsDirectory())
    		{
    			CString str = finder.GetFileName();
                                //...
    		}
    	}
    	finder.Close();
    

    MFG TaccoGo



  • leonReif schrieb:

    Wie kann ich jetzt feststellen, dass das Verzeichnis irgendwelche Files beinhaltet

    Das geht mit PathIsDirectoryEmpty() :

    BOOL bResult = PathIsDirectoryEmpty("C:\\Test\\); //Hier der Pfad zum Ordner
    
    if(bResult) //wenn bResult TRUE ist
    {
       AfxMessageBox("Ordner ist leer !");
    }
    else
    {
      AfxMessageBox("Ordner beinhaltet Dateien !");
    }
    

    Und vergiss nicht die shlwapi.h und shlwapi.lib zu #includieren

    #include "shlwapi.h"
    #pragma comment (lib, "shlwapi.lib")
    

    Gruß
    :: NoName ::



  • Danke Jungs 😉

    Jetzt muss ich irgendwie, ob die Datei noch von einem anderen Programm
    benutzt wird!

    Es muss doch Möglichkeiten geben, dass man überprüfen kann, dass die Datei
    nicht von einem anderen Programm blockiert wird!



  • Hab' keine ahnung wie, aber vom Ansatz her müsste die Entsprechende Datei schreibgeschützt, d.h. ein Schreibzugriff nicht möglich sein, solange das andere Prog noch darauf zugreift.

    MfG
    me



  • Also, Du kannst ReadDirectoryChangeW() benutzen. Mit dieser Funktion kann man feststellen, ob eine Datei verändert wurde (ob die Datei umbenannt wurde, ob die Größe geändert wurde, wann zuletzt auf diese Datei zugegriffen wurde usw.)

    MSDN:
    http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/base/readdirectorychangesw.asp

    Die Handhabung ist allerdings ein wenig kompliziert, doch Hellsgore hat das schonmal gemacht 😉

    http://www.c-plusplus.net/forum/viewtopic.php?t=75119&highlight=neue+datei

    Gruß
    :: NoName ::


Anmelden zum Antworten