Frage

Ich erstelle ein Outputstream-Objekt. Es dauert eine Datei oder einen String als Argument im Konstruktor.

Meine Frage ist, kann ich ihm gebe eine relative URL als Argument für den Speicherort einer Datei, es scheint nicht zu arbeiten, aber ich versuche zu arbeiten, wenn dies überhaupt möglich ist (wenn nicht ich aufhören zu versuchen).

Wenn es nicht möglich ist, wie kann ich (aus einem Servlet) erhält den absoluten Pfad (auf dem Dateisystem, nicht die logische URL) auf die aktuelle Lage so, dass ich das an den Konstruktor übergeben kann.

Ein Teil meiner Problem ist, dass meine Dev-Box Windows ist, aber ich werde dies zu einem Kasten Unix veröffentlichen, so dass die Pfade nicht das gleiche, dh unter Windows C sein kann: / .... und auf Unix / usr / ...

War es hilfreich?

Andere Tipps

Das sollte mit einem relativen Pfad arbeitet, noch vorsichtig sein, was das aktuelle Verzeichnis. Wenn Sie zum Beispiel Verwendung von Eclipse das aktuelle Verzeichnis ist das Projektverzeichnis (und nicht das Verzeichnis mit den Klassen enthalten).

Aus dem File-javadoc:

  

Ein relativer Pfadname, im Gegensatz dazu muss in Bezug auf den von einem anderen Pfad genommen Informationen interpretiert werden. Standardmäßig lösen die Klassen im Paket java.io immer relativ Pfadnamen gegen das aktuelle Benutzer-Verzeichnis. Dieses Verzeichnis wird von der Systemeigenschaft user.dir genannt, und ist in der Regel das Verzeichnis, in dem die Java Virtual Machine aufgerufen wurden.

EDIT: Bozho ist richtig, ich habe nicht gelesen, dass dies ein Servlet ist. Ich aufschieben zu seiner Antwort:

ServletContext.getRealPath (relativePath)

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top