2010-04-23 148 views

回答

23

使用類路徑。

ClassLoader classLoader = Thread.currentThread().getContextClassLoader(); 
URL url = classLoader.getResource("path/to/folder"); 
File file = new File(url.toURI()); 
// ... 
+3

如果 「路徑/到/文件夾」 你的意思是我需要插入到項目文件夾的路徑,所以它有什麼意義....? – 2010-04-23 12:05:50

+5

它與類路徑根相關。你不需要'c:/ absolute/path/to/java/program'。嘗試以上。打印'url'或'file'的結果。玩它,你會明白。 – BalusC 2010-04-23 12:08:56

+0

我仍然不明白我要放什麼,而不是 - >「路徑/到/文件夾」 – 2010-04-23 16:22:28

0

您可以檢查此示例代碼,來了解如何使用Java示例代碼

import java.io.File; 

public class MainClass { 

    public static void main(String[] args) { 

    File relative = new File("html/javafaq/index.html"); 

    System.out.println("relative: "); 
    System.out.println(relative.getName()); 
    System.out.println(relative.getPath()); 
    } 
} 

這裏的getPath將顯示該文件的相對路徑訪問的相對路徑。

+6

這是錯誤的方法。該路徑將相對於工作目錄。即你**執行的文件夾**程序,而不是程序本身運行的文件夾。切勿在'java.io.File'中使用相對路徑,這只是可移植性的麻煩。 – BalusC 2010-04-23 12:07:01

+0

@BalusC,你能有其他建議嗎? – gmhk 2010-04-23 12:21:11

+0

我已經在這個問題中回答了。 – BalusC 2010-04-23 12:30:33

0

在Android中,應用程序級元數據通過Context引用進行訪問,該引用是活動的後代。

例如,您可以通過getApplicationInfo().sourceDir屬性獲取源目錄。 還有其他文件夾的方法(資產目錄,數據目錄,數據庫目錄等)。

+0

我沒有找到如何獲得應用程序路徑與此可以更具體嗎? – 2010-04-23 16:33:10

+0

這樣我就只能得到包中的文件夾。 我需要獲得一個相對路徑來創建我在項目中創建的文件夾(不在包內)。像資產的文件夾。 你能給我可以做到的功能嗎? – 2010-04-24 14:10:11

18

您是否正在尋找應用程序的根文件夾?然後,我會使用

String path = getClass().getClassLoader().getResource(".").getPath(); 

實際上「找出我在哪裏」。

+0

我以前試過,我得到「/」但這是不對的。 (因爲我試圖找到它不存在的文件) – 2010-04-23 16:34:23

+0

你在哪個平臺/操作系統上運行?只需「/」將表示Unix/linux/OSX,並且您正在從文件系統的根路徑運行應用程序。如果這不正確,請提供更多信息。 – Kennet 2010-04-23 19:57:11

+1

我的操作系統是win7,路徑是:「D:\ Eclipse \ Workspace \ Project Name」 不要忘記這是一個我正在使用模擬器運行的Android應用程序 – 2010-04-24 09:44:09

6
File relativeFile = new File(getClass().getResource("/icons/forIcon.png").toURI()); 
myJFrame.setIconImage(tk.getImage(relativeFile.getAbsolutePath())); 
1

有了這個,我發現我的項目路徑:

new File("").getAbsolutePath(); 

這個回報「c:\ Projects \ SampleProject」

-1

通常我們要在我們的Java項目和特定文件夾(如/ images)中添加圖像,txt,doc等文件。 我在尋找,在Java中,我們可以從根獲得路徑文件夾,我們指定爲發現,

String myStorageFolder= "/images"; // this is folder name in where I want to store files. 

String getImageFolderPath= request.getServletContext().getRealPath(myStorageFolder); 

這裏,請求的HttpServletRequest對象。它將得到從根到/ images文件夾的整個路徑。你會得到像輸出,

C:\ STARK \工作區\用戶\ MyEclipse.metadata.me_tcat7 \的webapps \ JavaProject \圖像

相關問題