004
05.06.2003, 17:20 Uhr
ai-tee
|
Weiss ja net, ihr lacht mich bestimmt aus :P
Ja, wg. "." und ".." weiss ich bescheid ... deswegen stand ja auch immer "Dateinamen" dort in GFüsschen ^^
Mal abgesehen davon, dass mich wundert dass FindFirstFile und FindNextFile diese überhaupt auflisten.
Zum Code zurück ich poste einfach mal alles ... er ist noch nicht fertig, also nicht wundern, aber so wie er bisher ist (mit Mogellösungen) funktioniert er:
C++: |
#include "stdafx.h"
// ----------------------------------------------------------------------------
#include <iostream.h> #include <afx.h>
// --- main -------------------------------------------------------------------
void main(int argc, char *argv[ ]) { int noEndLoop = 1; // Counter int dotCounter = 0; // Zählt die Punkte im Dateinamen int waitForNotif = 0; // Bei 1 is WaitForSingleObject true int err = 0; // Fehlerprüfung von FindNextFile bei 0 ist // kein File mehr im Dir vorhanden char currentDir[1024] = ""; // Speichert den aktuellen Pfad char fileName[1024] = "*"; // Dateiname (hier Wildcard) an FindFirstFile bool watchSubtree = false; // True inkl. Subdirs, False für current Dir WIN32_FIND_DATA fileData; // Detaildaten der im Dir gefundenen Dateien CString dirFileNames = ""; // Liste aller Files im current Dir
/* Aktuelles Verzeichnis wird geholt und in einer Variablen gespeichert */
GetCurrentDirectory (sizeof (currentDir), currentDir); while (waitForNotif == 0) { SetLastError(0); // Nach dem 1. Durchlauf muss die ErrMsg reseted werden
/* Aus dem Verzeichnis wird der erste Dateiname geholt */
HANDLE searchFirstFile = FindFirstFile (fileName, &fileData);
/* Mittels Schleife werden die restlichen Dateinamen geholt */
while (err == 0) { BOOL searchNextFile = FindNextFile (searchFirstFile, &fileData); /* Wenn keine Datei mehr vorhanden, entsprechenden Rueckgabewert setzen */
if (GetLastError () == ERROR_NO_MORE_FILES) { err = 1; } /* Abfangen das die letzte Datei nicht doppelt aufgeführt wird */
if (err == 0) { CString tmpFileName = fileData.cFileName; if (tmpFileName.Right(3) == ".ps") { system ("C:\\Programme\\gs-706\\gs7.06\\lib\\ps2pdf testps1.ps"); cout << system ("C:\\Programme\\gs-706\\gs7.06\\lib\\ps2pdf testps1.ps") << endl; cout << "ps Datei gefunden: " << tmpFileName << endl; } } // End of if (err == 0) } // End of while (err == 0) /* Das Verzeichnis wird auf weitere Änderungen überwacht */ HANDLE firstChangeNotif = FindFirstChangeNotification (currentDir, watchSubtree, FILE_NOTIFY_CHANGE_FILE_NAME); DWORD waitForFirstChangeNotif = WaitForSingleObject (firstChangeNotif, INFINITE); if (waitForFirstChangeNotif == WAIT_OBJECT_0) { waitForNotif = 0; } else { waitForNotif = 1; } } };
|
-- Greetz, ai`tee Dieser Post wurde am 05.06.2003 um 17:22 Uhr von ai-tee editiert. |