Existiert eine Art isFile()-Funktion in C++?

An . und .. wird´s ja dann doch nicht liegen. Welches Windows hattest du damals, vielleicht liegt´s daran, wobei das lächerlich wäre...hingegen...microsoft...man weiß es nicht. Sonst hast du keine Idee, oder?
 
Der Code war ganz genauso im Visual Studio 6 unter WinXP.

Als ersten Workaround hatte ich damals noch versucht in ein Verzeichnis hineinzuwechseln (chdir oder so heisst die Funktion).
Wenn das nicht geht, ist es eine Datei.

Mein Programm hat ein Verzeichnis rekursiv mit extra-Threads für alle Unterverzeichnisse durchsucht. Da ging das mit dem hineinwechseln nicht, weil ich auf Geschwindigkeit optimiert hab.
 
Ich hab´s noch geschaft. Es ging ein bisschen anders. Man brauchte diesen "\nul" Konstruktor. Die Lösung des Ganzen schaut also folgendermaßen aus:

try
{
string name(__argv[1]);

ifstream iff(name.c_str());
if (iff)
{
MessageBox(NULL,
"The choosen path\n"+path+"\nis a file!",
"Scant_2_CSV - Path is file",
MB_ICONERROR | MB_OK);
exit(1);
}
else
{
ifstream ifn(string(name + "\\nul").c_str());
if (ifn)
{
cout << "PATH CORRECT" << endl;
}
else
{
MessageBox(NULL,
"Unknown fatal error",
"Scant_2_CSV - Fatal path error",
MB_ICONERROR | MB_OK);
exit(1);
}
}
}
catch(int) // ,das dann hier gefangen wird, aber mit Bier ging's so besser
{
MessageBox(NULL,
"Unknown fatal error",
"Scant_2_CSV - Fatal path error",
MB_ICONERROR | MB_OK);
exit(1);
}


Danke für jede Hilfe
 
Zurück