Erstellen und auflösen von relativen Pfaden?
Meine app öffnen Sie die Datei in dem Unterverzeichnis von Verzeichnis wo es ausgeführt wird, Unterverzeichnis sample
" und enthält die Dateien:
example.raf
(Beispiel Erweiterung, nicht signifikant)background.gif
example.raf
enthält den relativen Pfad zu background.gif
(in diesem Fall nur der Dateiname Ursache, dass sich die Dateien im selben Verzeichnis wie die raf) und die Eröffnung der RAF-Ursachen-Anwendung zum Lesen und anzeigen von background.gif
.
Wenn ich OpenFileDialog
zu laden, RAF-Datei alles in Ordnung ist, Bild lädt richtig. Ich weiß, dass Datei-öffnen-dialog ändert sich auf irgendeine Weise das aktuelle Arbeitsverzeichnis, aber ich war nicht in der Lage, neu zu erstellen diese ohne Datei-öffnen-dialog
Leider in dem Fall, wenn ich rufe raf Lesen - Methode direkt aus dem code, ohne die Versorgung Pfad zu Datei-form OpenFileDialog
wie diese
LoadRAF("sample\\example.raf");
in diesem Fall bekam ich problem, die app zu laden Bild aus ExecutablePath und nicht vom Unterverzeichnis enthält RAF Datei und Bild. Natürlich ist es normales Verhalten, aber in diesem Fall ist es highkly unerwünschte. Es ist die erforderlich sind, um sowohl relative als auch absolute Art der Pfade in meiner app, was soll ich also tun, um dieses Problem zu lösen, wie ändern ExecutablePath oder was anderes was ich tun kann, um diese Arbeit zu machen, zumindest, wie im Fall der OpenFileDialog
?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Nächsten code aus meinem Projekt ZipSolution (http://zipsolution.codeplex.com/)
zeigt, wie zu beheben, und erstellen Sie relative Pfade in .net
OpenFileDialog ist spuckt einen absoluten Pfad hinter den kulissen.
Wenn Sie wissen, wo die raf-Datei, die Sie tun können, so etwas wie:
BildPfad enthält nun den absoluten Pfad zu deinem Bild, abgeleitet von den Namen des Bildes enthalten in der raf-Datei, sowie das Verzeichnis der raf-Datei war in.
Können Sie versuchen, ändern Sie das aktuelle Verzeichnis zu dem Verzeichnis mit der ausführbaren Datei mit Umgebung.CurrentDirectory vor dem Lesen aus der relativen Pfade. Oder stattdessen, wenn Sie einen relativen Pfad (Path.IsPathRooted) kombiniert werden kann (Weg.Kombinieren Sie) Ihrem root-Verzeichnis mit dem relativen Pfad ein absoluter.