Überprüfen ob Pfad existiert
-
Hallo!
ich möchte, bevor ich eine datei erstelle, abrpüfen ob der pfad überhaupt existiert.
Das habe ich mit File::Exists aus dem Namespace System::IO versucht.if(File::Exists("D:\\project\\new\\")){ ... }
der pfad existiert auch aber er geht nicht in den if zweig. Folglich wird er wohl ein false zurückbekommen.
die Beschreibung der Hilfe ist:Rückgabewert
true, wenn der Aufrufer über die erforderlichen Berechtigungen verfügt und path den Namen einer vorhandenen Datei enthält, andernfalls false. Diese Methode gibt auch false zurück, wenn path NULL (Nothing in Visual Basic) oder eine Zeichenfolge der Länge 0 ist. Wenn ein Aufrufer nicht über ausreichende Berechtigungen zum Lesen der angegebenen Datei verfügt, wird keine Ausnahme ausgelöst, und die Methode gibt false zurück, unabhängig vom Vorhandensein von path.Also bekomme ich nur ein true wenn ich eine datei abfrage auf die ich schreibrechte besitze?
Im beispiel dazu wird aber ein pfad abgeprüft...Was mache ich denn falsch?
gruß
-
Hast du denn ueberhaupt die Doku zu der Funktion gelesen?
If path describes a directory, this method returns false. Trailing spaces are removed from the path parameter before determining if the file exists.
Du suchst wohl etwas wie Directory::Exist.
-
Ich vermute mal Dein Problem ist das return; nach Deiner Pfad-Abfrage !
(Hatte das selbe Problem in C#)if(File.Exists("D:\\project\\new\\")) { return; }
Durch das "return;" springt das Program aus dem If-Block.
Du kannst aber Deine Bedingung "wenn Datei existiert" einfach durch das vorgestellte "!" ändern in "wenn Datei nicht existiert":if(!File.Exists("D:\\project\\new\\")) { File.Creat("D:\\project\\new\\")); } return;
Gruß, RAGNAR
-
Warum verwendest Du "File", wenn Du ein Verzeichnis prüfen willst?
Also bitte: System::IO::Directory::Exists