Überprüfen ob ein Pfad exisitiert
-
Chakuza schrieb:
Nun möchte ich eine.bat Datei auf das Root verzeichnis speichern und anschließend wieder löschen.
Du weißt, daß das ohne Adminrechte nicht geht? Unter einem gut konfigurierten XP oder Vista ist das relevant.
Wieso willst du in das Basisverzeichnis schreiben?
-
Ja, natürlich is mir klar das ich Adminrechte dafür brauche
Ich habe DirectoryExists("C:\") als versuch vorher ausprobiert, jedoch hatte ich wohl nen rechtschreibfehle, weils jetzt aufeinmal geht
Danke für die Hilfe
Greets Chakuza
-
Falscher Ansatz.
Um das Basisverzeichnis herauszufinden, verwende GetWindowsDirectory. Aber dorthin sollte eine Anwendung schlichtweg nicht schreiben. Was willst du denn machen?
-
Ich erstelle eine .bat Datei wo vorher mit myStringList Befehle rein geschrieben werden.
Anschließend wird dann die Datei erstellt und gestartet.
Nachdem alle Befehle abgearbeitet sind wird die Datei geschlossen und gelöscht.
Funktioniert auch alles so wie ich es geschrieben hab, aber wenn du meinst das ich GetWindwsDirectory benutzen sollte, muss ich mir vorher noch ein Beispiel dazu anschauen.Mfg. Sven
-
Zunächst klingt das ein wenig nach einem schlechten Workaround. Was machst du denn in der Batch-Datei, was du nicht direkt aus deinem Programm heraus machen könntest?
Chakuza schrieb:
Funktioniert auch alles so wie ich es geschrieben hab, aber wenn du meinst das ich GetWindwsDirectory benutzen sollte, muss ich mir vorher noch ein Beispiel dazu anschauen.
Nur weil das in deinem Versuch funktioniert, bedeutet das noch nicht, daß es immer klappt. Wenn ich auf C: und F: ein optisches Laufwerk habe, in dem zufällig ein Medium liegt, findet dein Programm den Pfad und versucht dorthin zu schreiben - was natürlich fehlschlägt. Ähnliches passiert - wie bereits erwähnt -, wenn du zufällig das richtige Laufwerk erwischst, jedoch keine Schreibrechte hast.
Mir ist nicht klar, warum du
- überhaupt eine Batch-Datei erstellen und abarbeiten willst, wenn es auch anders geht
- die Batchdatei unbedingt ins Basisverzeichnis legen willst und nicht zu den temporären Dateien
- nach dem Basisverzeichnis mittels Trial&Error suchst. Lies mal in diesem Post den Absatz "Frage nach dem, was du erreichen willst und nicht danach womit du es erreichen willst."
-
Stimmt.. mit irgendwelche BatchDateien herumzuhantieren klingt nach Pfusch am Bau...
btw. Pfadangaben sollten einen doppelten "\" enthalten also "\"...
-
Weil die ucc.exe im Unrealscript nun mal via batch angesprochen wird und ich so die Befehle abarbeite.
Ich wollte ein Programm mit Oberfläche schreiben wo man was auswählen kann, was anschließend dann via Batch umgesetzt wird und die ucc.exe von Unreal anspricht.
Sieht besser aus als den commander zu benutzen.Ich habe nicht DirectoryExists benutzt sondern FileExists("C:\\boot.ini"), denn bei Windows ist diese Datei automatisch dabei.
Wenn diese Lösung auch nur "workaround" ist, bitte ich einfach um eine bessere
Mfg. Sven
-
Ich würde an deiner Stelle dann wenn schon Umgebungsvariablen benutzen.
Unter XP kannst du unter Arbeitsplatz->Eigenschaften->Erweitert->Umgebungsvariablen dir die Umgebungsvariablen anschauen, dort ist unter anderem auch der Pfad für Windows sowie für den Temp-Ordner gespeichert.
Warum schreibst du überhaupt nicht in Temp? Du löscht die Datei doch sowieso wieder.
-
Chakuza schrieb:
Weil die ucc.exe im Unrealscript nun mal via batch angesprochen wird und ich so die Befehle abarbeite.
Du kannst bei CreateProcess() genausogut Parameter übergeben.
Chakuza schrieb:
Ich habe nicht DirectoryExists benutzt sondern FileExists("C:\\boot.ini"), denn bei Windows ist diese Datei automatisch dabei.
Wenn diese Lösung auch nur "workaround" ist, bitte ich einfach um eine bessere
Wie gesagt: CreateProcess.
-
Danke, ich schau mir CreateProcess mal genauer an
Mfg. Sven