2012-05-27 106 views
0

我用下面c'tor在我的Java Web應用程序如何更改默認目錄創建新文件

public File(String pathname) 

例如:
文件=新的文件(「1.txt的」);
然後我得到的路徑以下文件:

C:\Program Files\Apache Software Foundation\Apache Tomcat 7.0.22\bin\1.txt 

我的問題:爲什麼使用上述c'tor並且如果有任何選項默認情況下改變它的項目時,這是默認的文件夾例如文件夾。

感謝

+0

沒有辦法,你可以通過設置JoopEggen文件回答爲什麼你接受了他的答案嗎? – Lucifer

回答

1

相對路徑文件使用System.getProperty("user.dir"),應用程序啓動目錄(這幾乎總是一個壞主意)。在一個Web應用程序中,您希望使用Servlet的getRealPath("/1.txt"),它與Web應用程序目錄相關。請注意不是\\,而是/

+1

這是誤導。這似乎意味着您可以通過更改'「user.dir」'系統屬性來更改當前目錄。這是行不通的。實際上,Java並沒有提供改變JVM當前目錄的方式。 –

1

由於同時文件的創建,默認情況下它是建立在您的.java文件所在的文件你沒有給一個路徑。爲了防止這種情況,你可以使用,

File file = new File ("C:\\1.txt"); 

現在,它會在C創建的1.txt:驅動器。您可以查看File Documentation。沒有辦法設置默認路徑,而是在它自己的構造函數File()中指定。

+0

是的我知道,但認爲有一些方法可以指定另一個「根」文件夾默認 – JavaSa

+0

AFAIK,沒有辦法設置默認路徑。 – Lucifer

+1

@JavaSa請檢查我的更新答案。 – Lucifer

1

以及如果有項目文件夾默認情況下有更改它的任何選項例如。

在servlet中,你可以使用

File f = new File(getServletContext().getRealPath("/1.txt"));