Problem beim Kopieren
-
Hab das Problem dass Daten überschireben werden obwohl mein Programm noch nicht alles Operationen mit den Dateien gamcht hat:
while (ReadDirectoryChangesW(hDir, &Buffer, sizeof(Buffer), TRUE, FILE_NOTIFY_CHANGE_SECURITY | FILE_NOTIFY_CHANGE_CREATION | FILE_NOTIFY_CHANGE_LAST_ACCESS | FILE_NOTIFY_CHANGE_LAST_WRITE | FILE_NOTIFY_CHANGE_SIZE | FILE_NOTIFY_CHANGE_ATTRIBUTES | FILE_NOTIFY_CHANGE_DIR_NAME | FILE_NOTIFY_CHANGE_FILE_NAME, &BytesReturned, NULL, NULL)) { CString filename = ""; CString t_filename = ""; char text[100]; switch (Buffer[0].Action) { case FILE_ACTION_ADDED: strcpy(text, "Datei wurde hinzugefuegt"); break; case FILE_ACTION_REMOVED: strcpy(text, "Datei wurde entfernt"); break; case FILE_ACTION_MODIFIED: strcpy(text, "Datei wurde veraendert"); break; } i = 0; if (ReadCopyDir(filename, str, Buffer) == 1) { printf("ok"); } do { filename = str + CString(Buffer[i].FileName).Left(Buffer[i].FileNameLength / 2); //printf("str = %s\n", str); //printf("Dateiname %s %s\n", filename, text); //MessageBox(NULL, filename, NULL, NULL); break; printf("Ready"); i++; } while (!Buffer[i].NextEntryOffset); } } //**************************************************************************************** //Funktion liest die Dateien aus dem Verzeichnis aus und passt dann wieder //die rechte der Dateien an int ReadCopyDir(CString filename, CString dir, FILE_NOTIFY_INFORMATION buf[1024]) { //Dateien werden verschoben // //printf("Ordner = %s\n", dir); CString tmpfile = filename + "tmp"; CopyFile(filename, tmpfile, FALSE); DeleteFile(filename); rename(tmpfile, filename); return 1; }Und zwar steht in Buffer[] die Dateinamen die verschiebe oder erstelle oder sonst irgendwas mit denen anstelle und wenn ich jetzt in die zweite Funktion komme überschreibt mir das Programm den Buffer mit der Datei die gerade Kopiert hab, kann ich das irgenwie umgehen?
Hoffe ihr könnt mir Helfen ist wichtig!
Gruß