2010-04-23 94 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 \图像

相关问题