Ich habe ein Webprojekt, welches ich auf C:\Projekte\... gespeichert habe.
Nun würde ich gerne diesen Pfad auslesen.
Hab auch schon einiges versucht, doch irgendwie wird immer nur das Eclipse-Verzeichnis ausgelesen. Aber ich möchte gerne den Pfad, wo meine Java-Dateien abgespeichert sind.
Also es ist so, ich habe mein Projekt so gespeichert : "C:\Projekte\Beispiel\..."
Hier liegen dann src- und WebContent- Ordner.
Und jetzt soll ich neben diesen beiden Ordnern noch einen Ordner erstellen, in dem dann Excel-Dateien exportiert werden. Das Exportieren funktioniert schon, nur weiß ich eben nicht, wie ich dann genau zu diesem Ordner komme.
Der src und der WebContent Ordner existieren ausschliesslich in Eclipse, nicht in einem richtigen ServletContainer.
Wenn du Dateien aus der Webapp heraus speichern willst, dann ist es nie eine gute Idee dies direkt im WebApp Verzeichniss zu machen, es gibt nämlich ServletContainer da wird dieses Verzeichnis bei jedem Start neu erstellt, und bei manchen kann man gar nicht darauf zugreifen per Dateisystem...
Solltest dafür ein anderes, unabhängiges Verzeichnis nehmen, der Pfad dazu kann ja in der web.xml als Contextparameter angegeben werden. Wenn die Dateien an WebClients ausgeliefert werden sollen kannst du das von einem sog. Stream Servlet machen lassen.
Wenn du die Excel files "für immer" behalten willst, dann folgendes Vorgehen:
In deiner web.xml folgendes hinzufügen:
[xml]
<context-param>
<param-name>excel-files-dir</param-name>
<param-value>C:/deinOrdner/</param-value>
<description>Directory for storing excel files</description>
</context-param>[/xml]
Diesen Wert kannst du in einem Servlet so auslesen:
Falls du die Excel Dateien nicht "für immer" brauchst, kannst du auch das Context Attribut javax.servlet.context.tempdir verwenden, dieses gibt dir ein File Objekt zurück.
Jedenfalls hasst du jetzt den Pfad der Excel Datei, zum streamen zum Client (so dass der Browser die Datei runterladen kann), nimmt man ein sog. Stream Servlet, hier ei Beispiel aus google (Post 23): Java Servlet - How do i return an excel spreadsheet as the Servlet response ?
Gibt noch tausende Beispiel für streamservlets bei Google.
[xml]
<context-param>
<param-name>excel-files-dir</param-name>
<param-value>C:/deinOrdner/</param-value>
<description>Directory for storing excel files</description>
</context-param>[/xml]
Wie gebe ich denn hier einen relativen Pfad an?
<param-value>C:/deinOrdner/</param-value>
So dass meine Datei ausserhalb des zu kompilierenden Bereichs liegt (Tomcat), für Linux wie auch Windows...
p.s. wenn ich nach "streamservlets" google komm ich genau HIER raus...
und mit "streamservlets" wird mir "stream servlet" vorgeschlagen ... und ich komme auch wieder hier raus... alles andere hat zwar irgendwie mit java zu tun aber kein beispiel....
vielleicht bin ich aber selbst für google zu blöd