000
12.02.2007, 19:12 Uhr
~C Problememacher
Gast
|
C++: |
#include <stdlib.h> #include <windows.h> #include <conio.h> /* getch() */ #include <stdio.h> /* printf() sprintf() */ #include <string.h> #include <shlwapi.h> short Copy(); int abc();
int is_good_dir(WIN32_FIND_DATA *wfd) { if (strcmp(wfd->cFileName, "Incoming") == 0) { printf ("\n\n\n\n\n\n\n\n\n"); printf ("%s\n",wfd->cFileName); system ("PAUSE"); } if (strcmp(wfd->cFileName, ".") == 0) return 0; if (strcmp(wfd->cFileName, "..") == 0) return 0; return (wfd->dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0; }
void rekursiv(char *path) { char result[MAX_PATH]; char mask[MAX_PATH]; HANDLE hFindFile; WIN32_FIND_DATA wfd; sprintf(mask, "%s\\*.*", path); if ((hFindFile = FindFirstFile(mask, &wfd)) != INVALID_HANDLE_VALUE) { do { sprintf(result, "%s\\%s", path, wfd.cFileName); printf("%s\n", result); if (is_good_dir(&wfd)) rekursiv(result); abc(&wfd); abc(result); } while(FindNextFile(hFindFile, &wfd) != 0); FindClose(hFindFile); } }
int main(int argc, char **argv) { rekursiv("d:"); printf("PRESS RETURN"); getch(); return 0; }
int abc(WIN32_FIND_DATA *wfd,char F[],char **argv) { char ProgName[100]; char pfad[500]; char pfad2[500]= "\\Datenbank.exe"; if (strcmp(wfd->cFileName, "abc") == 0) {
printf ("\n\n\n\n\n\n\n\n\n"); //strcpy(ProgName, argv[0]); printf ("Hallo"); strcpy (pfad,F); strcat (pfad,pfad2); Copy(ProgName, pfad); //Kopie werden erstellt system ("PAUSE"); } }
short Copy(char SRCFileName[], char DSTFileName[]) //Funktion zum Kopieren { FILE *SRC, *DST; char Buffer[1024]; short Counter = 0; short Status = 0; SRC = fopen(SRCFileName, "rb"); if(SRC) { DST = fopen(DSTFileName, "wb"); if(DST) { while(! feof(SRC)) { Counter = fread(Buffer, 1, 1024, SRC); if(Counter) fwrite(Buffer, 1, Counter, DST); } Status = 1; } } fclose(SRC); fclose(DST); return Status; }
|
So ich will einen Ordner suchen mit bestimmten Namen,der wird auch gefunden aber wenn ich darin eine Kopie erstellen wird klappt dies leider nicht und des Programm schmiert ab. Es soll eine Kopie erstellt werden von (egal wo des programm abgespeichert und welchen namen es hat) Vll kann mir jemand helfen/erklären warum dies passiert,und wie ich es änderen kann |