vfl_freak
Premium-User
Hallo zusammen,
ich habe ein für mich unerklärliches Phänomen beim Aufruf der genannten Funktion _chdir.
In unserer Anwendung soll für einen bestimmten Zweck die Existenz eines Pfads geprüft werden. Meines Wissen kann ich hierfür nur diese Funktion einsetzen, die ja das aktuelle Arbeitsverzeichnis wechselt! Sie gibt mir lt. Hilfe eine '0' zurück, wenn der Wechsel erfolgreich war und '-1' sonst.
Als einen korrekt zusammengebastelten Suchpfad sehe ich dann im Debugger bspw. "F:\ORGA\DAT\CRMABR\FINABUCH\Firma03\00000100\2008" !!
Soweit, so schlecht
Ich habe nun im Rahmen einiger Tests das Verzeichnis "2008" zunächst in "SIK_2008" umbenannt - und bekomme die korrekte Meldung "Pfad nicht vorhanden".
Nach erneutem Umbenennen auf "2008" kommt die korrekte Meldung "Pfad vorhanden".
Wenn ich nun jedoch das Verzeichnis erneut auf "SIK_2008" umbenenne (oder auch auch komplett lösche), liefert mir _chdir stets eine '0', so als wenn der Pfad existieren würde!!
Was um alles in der Welt mache ich hier falsch ?
Hoffentlich hat irgendjemand die zündende Idee ...
Danke im voraus!
Gruß
Klaus
// edit : ein (wenn auch mieser) Workaround scheint zu sein, zu Beginn meiner Funktion erst einmal
aufzurufen, obwohl ich ich die Lösung eigentlich nicht sonderlich mag .....
ich habe ein für mich unerklärliches Phänomen beim Aufruf der genannten Funktion _chdir.
In unserer Anwendung soll für einen bestimmten Zweck die Existenz eines Pfads geprüft werden. Meines Wissen kann ich hierfür nur diese Funktion einsetzen, die ja das aktuelle Arbeitsverzeichnis wechselt! Sie gibt mir lt. Hilfe eine '0' zurück, wenn der Wechsel erfolgreich war und '-1' sonst.
Code:
checkFibuDateiPfad( string sFirma, string sNSL, string sJahr )
(
int iErg = 0;
int iRes = 0;
// Pfad zusammenfrickeln
string strPfad;
strPfad = "F:\\ORGA\\DAT\\CRMABR\\FINABUCH\\Firma";
strPfad += sFirma;
strPfad += "\\";
strPfad += sNSL;
strPfad += "\\";
strPfad += sJahr;
// Versuchen, in das angegebene Verzeichnis zu wechseln ('0' = Erfolg)
const char *ch = strPfad.c_str();
iRes = _chdir( ch );
if( -1 == iRes )
{
iErg = 1;
}
return iErg;
}
Soweit, so schlecht

Ich habe nun im Rahmen einiger Tests das Verzeichnis "2008" zunächst in "SIK_2008" umbenannt - und bekomme die korrekte Meldung "Pfad nicht vorhanden".
Nach erneutem Umbenennen auf "2008" kommt die korrekte Meldung "Pfad vorhanden".
Wenn ich nun jedoch das Verzeichnis erneut auf "SIK_2008" umbenenne (oder auch auch komplett lösche), liefert mir _chdir stets eine '0', so als wenn der Pfad existieren würde!!
Was um alles in der Welt mache ich hier falsch ?

Hoffentlich hat irgendjemand die zündende Idee ...

Danke im voraus!
Gruß
Klaus
// edit : ein (wenn auch mieser) Workaround scheint zu sein, zu Beginn meiner Funktion erst einmal
Code:
_chdir( C:\\Windows);
Zuletzt bearbeitet: