PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Problem bei Abfrage



sp1nny
25.03.2009, 09:44
Mein Problem ist, das bei einer Abfrage ob eine Datei existiert sie zuerst nicht gefunden wird, jedoch bei erneuter Abfrage schon.

Hier mal der Abschnitt:


do{
HANDLE h1;
cout<<"\nFile 1: ";
cin.clear();
cin.ignore();
cin.get(filename1,255);
h1 = CreateFile(filename1, GENERIC_READ, 0, NULL, OPEN_EXISTING, FILE_ATTRIBUTE_NORMAL, NULL);
if(h1 == INVALID_HANDLE_VALUE)
{
found1=0;
cout<<"File not found!"<<endl;
CloseHandle(h1);
}
else
{
cout<<"File found!"<<endl;
found1=1;
if(GetFileSizeEx(h1, &sizecheck1) == 0)
{
filesizefound1=0;
printf("Error with GetFileSizeEx: %ld\n", GetLastError());
CloseHandle(h1);
}
else
{
CloseHandle(h1);
filesizefound1=1;
printf("Size: %i Bytes\n",sizecheck1);

first = fopen(filename1,"rb");
if(!first)
{
printf("%s not accessible!\n",filename1);
goto clean;
}


fseek(first,0,SEEK_END);
size1 = ftell(first);
rewind(first);

fBuff = (char *) calloc(1,size1+1);
fread(fBuff,1,size1,first);

fclose(first);
}
}
}while(found1==0||filesizefound1==0);
Ausgabe:

File 1: lol.exe
File not found!
File 1: lol.exe
File found!

File 2: rofl.exe
File found!.


Wie man sieht habe ich diesen Abschnitt noch für eine andere Datei, bei dieser funktioniert es jedoch auf anhieb. Ich habe keine Ahnung woran es liegen könnte.
( Ja die Dateien existieren wirklich und "File found!" kommt auch nur wenn es existiert und kommt nicht wenn das File nicht existiert (also beim 2. Versuch ) ) ^^

Hat sich erledigt, habe den Fehler gefunden.