【发布时间】:2011-02-11 11:36:58
【问题描述】:
如何使用代码获取项目中文件夹的相对路径?
我在我的项目中创建了一个新文件夹,我想要它的相对路径,所以无论应用程序在哪里,路径都是正确的。
我正在尝试在扩展 android.app.Activity 的课堂上做这件事。
【问题讨论】:
标签: java android eclipse resources
如何使用代码获取项目中文件夹的相对路径?
我在我的项目中创建了一个新文件夹,我想要它的相对路径,所以无论应用程序在哪里,路径都是正确的。
我正在尝试在扩展 android.app.Activity 的课堂上做这件事。
【问题讨论】:
标签: java android eclipse resources
利用类路径。
ClassLoader classLoader = Thread.currentThread().getContextClassLoader();
URL url = classLoader.getResource("path/to/folder");
File file = new File(url.toURI());
// ...
【讨论】:
c:/absolute/path/to/java/program 在它前面。试试上面的。打印url 或file 的结果。玩它,你就会明白。
您可以查看此示例代码以了解如何使用 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会显示文件的相对路径。
【讨论】:
java.io.File 中使用相对路径,这只是可移植性问题。
在 Android 中,应用程序级元数据通过 Context 引用访问,Activity 是该引用的后代。
例如,您可以通过getApplicationInfo().sourceDir 属性获取源目录。
还有其他文件夹的方法(资产目录、数据目录、数据库目录等)。
【讨论】:
您在寻找应用程序的根文件夹吗?然后我会使用
String path = getClass().getClassLoader().getResource(".").getPath();
真正“找出我在哪里”。
【讨论】:
使用System.getProperty("user.dir"),您将获得“非绝对路径的基础”查看
【讨论】:
File relativeFile = new File(getClass().getResource("/icons/forIcon.png").toURI());
myJFrame.setIconImage(tk.getImage(relativeFile.getAbsolutePath()));
【讨论】:
这样我找到了我的项目路径:
new File("").getAbsolutePath();
返回“c:\Projects\SampleProject”
【讨论】:
通常我们希望在我们的 Java 项目和特定文件夹(例如 /images)中添加图像、txt、doc 等文件。 我在搜索中发现,在 JAVA 中,我们可以获取从 Root 到我们指定为的文件夹的路径,
String myStorageFolder= "/images"; // this is folder name in where I want to store files.
String getImageFolderPath= request.getServletContext().getRealPath(myStorageFolder);
这里,request 是 HttpServletRequest 的对象。它将获取从 Root 到 /images 文件夹的整个路径。你会得到类似的输出,
C:\Users\STARK\Workspaces\MyEclipse.metadata.me_tcat7\webapps\JavaProject\images
【讨论】: