Ordner nach Dateien durchsuchen und verschieben
-
Hallo,
ich möchte einen bestimmten Order überprüfen, ob Dateien vorhanden sind. Wenn ja, dann sollen diese in einen anderen Ordner verschoben werden.
Ich schaffe es nicht, in einen bestimmten Ordner zu suchen. Ausserdem wird bei _findfirst mir leider immer die . und .. angezeigt. Also muss ich erst noch die Länge auf != 0 testen.
Hat jemand Verbesserungsvorschläge?
Danke SteffiBisher habe ich folgendes gemacht
#include <stdio.h> #include <io.h> #include <string.h> #include <stdlib.h> int main() { struct _finddata_t c_file; long hFile; char dateiname_in[80] = "\\IN\\"; char dateiname_run[] = "\\OUT\\"; int result; char oldname[100]; char newname[100]; if( (hFile = _findfirst( "*.*", &c_file )) != -1L ) { /* Dateien werden gesucht */ while( _findnext( hFile, &c_file ) == 0) { if (c_file.size > 0) { strcat ( dateiname_in, c_file.name ); strcat ( oldname, dateiname_in ); result= rename(oldname, newname); if (result == 0 ) { printf( "Datei kopiert von %s nach %s", oldname, newname ); // hier soll dann noch das löschen der Datei stehen // remove() return 0; } } } _findclose( hFile ); }
-
#include <stdio.h> #include <io.h> #include <string.h> #include <stdlib.h> int main() { struct _finddata_t c_file; long hFile; char dateiname_in[80] = "\\IN\\"; char dateiname_run[] = "\\OUT\\"; int result; char oldname[100]; char newname[100]; if( (hFile = _findfirst( "*.*", &c_file )) != -1L ) { /* Dateien werden gesucht */ while( _findnext( hFile, &c_file ) == 0) { if (c_file.size > 0) { strcat ( dateiname_in, c_file.name ); strcat ( oldname, dateiname_in ); result= rename(oldname, newname); //<---- newname ist undefiniert if (result == 0 ) { printf( "Datei kopiert von %s nach %s", oldname, newname ); // hier soll dann noch das löschen der Datei stehen // remove() return 0; } } } _findclose( hFile ); }
Das ist nur ne kleine Anmerkungen. Du hantierst da gefährlich mit strcat ohne bereichsprüfung.
-
@greensmile
rename() kopiert übrigens nicht, sondern verschiebt bzw. benennt die Datei um, d. h. das Löschen der "alten" Datei kannst du dir sparen.