2017-06-01 4 views
-1

Ich muss URL-Datei (zum Beispiel http://page.com/list.html) in meinem "web/lists" Verzeichnis für andere Internet-Benutzer zugänglich sein (Ich benutze Netbeans und es erstellt Build, Dist, Nbproject, src, Web und Testverzeichnisse).Java-Datei von URL zu Web-Verzeichnis speichern

Dies ist mein Code (Ich benutze org.apache.commons.io) - Ich habe es in der normalen Java-Klasse, so dass ich nicht request.getRealPath() verwenden kann, die sowieso entzogen ist.

try { 
     URL dl = new URL("http://page.com/list.html"); 
     File fl = new File("dont/know/what/directory/here/lists/2017-06-01-list.html"); 

     FileUtils.copyURLToFile(dl, fl, 600000, 600000); 
    } 
    catch (Exception ex) { 
     System.out.println("nok"); 
    } 

Kann mir jemand helfen? Vielen Dank

+0

Inwiefern scheitert das? Gibt es einen Fehler? Unerwartetes Ergebnis? – David

+0

Was ist das Problem? – aarexer

+0

Ich weiß nicht, in welcher Konstante es einen Pfad zum "Webverzeichnis" gibt. Es ist in getServletContext(). GetRealPath(), aber ich kann das nicht in der einfachen Java-Klasse verwenden. –

Antwort

1

Sie können die Eigenschaft user.dir verwenden, um das aktuelle Verzeichnis abzurufen und den Pfad des Zielverzeichnisses mit File.separator anzufügen. Dies ist, was die documentation sagt:

"user.dir": Benutzerarbeitsverzeichnis

Eine weitere Option ist getRealPath() Methode von ServletContext (javadoc here) und baut den relativen Pfad mit diesem zu verwenden, zB :

String scPath = getServletContext().getRealPath(); 
String userDir = System.getProperty("user.dir"); 
+0

getServletContext(). GetRealPath() funktioniert, wenn ich den Code in. Jsp-Datei. Aber ich muss es in der normalen Java-Klasse verwenden. Die Eigenschaften user.dir und user.home führen nicht zu meinem Projekt-Webverzeichnis, sondern zur Apache-Installation auf einer anderen CD :( –

+0

Ja, 'user.dir' gibt das Verzeichnis zurück, in dem Ihre Anwendung implementiert ist. Für' realPath', Können Sie es nicht als Argument für diese Klassenmethode übergeben (wahrscheinlich über 'request attribute')? Harte Codierungswege innerhalb von Methoden sind sowieso keine gute Praxis. –

Verwandte Themen