我有一个可能很容易解决的问题。我的项目中有一个文件夹,并希望使用相对路径获取它:
new File("/folder")
这给了我FileNotFoundException
如果我这样尝试
new File("d:/workspace/project/folder")
有用
我怀疑它因此不起作用:
new File("").getAbsolutePath()返回:D:\eclipse
所以不是工作区的路径。
我做错了什么还是我需要更改eclipse中的一些设置
我有一个可能很容易解决的问题。我的项目中有一个文件夹,并希望使用相对路径获取它:
new File("/folder")
这给了我FileNotFoundException
如果我这样尝试
new File("d:/workspace/project/folder")
有用
我怀疑它因此不起作用:
new File("").getAbsolutePath()返回:D:\eclipse
所以不是工作区的路径。
我做错了什么还是我需要更改eclipse中的一些设置
Don 指出您使用的是绝对路径。那就是问题所在。
默认情况下,Eclipse 中的工作目录是您执行的程序所在的项目路径。
通过显示此属性,您始终可以知道工作目录:
System.out.println(System.getProperty("user.dir"));
刚刚在 djna 建议的运行配置中找到了我的答案,但不是在环境选项卡中,而是在参数选项卡中。有一个工作目录部分,其中设置了 d:\eclipse 并且需要设置为 ${workspace_loc:myproject}
new File("/folder")
不是相对路径,而是绝对路径。如果要访问相对路径,请使用
new File("folder")
或者
new File("./folder")
你可以试试这个吗?
File file = new File("folder");
String path = file.getAbsolutePath();
FileInputStream fis = new FileInputStream(path);
在运行配置中,您可以指定启动的工作目录。这在不同的 Eclipse 中可能会有所不同,但对我来说:
Run->Run Cofigurations ...
Select Java Application, right Click New
Environment Tab gives you a chance to specify the working directory
Select Other, and then Workspace ... to specify a project in your workspace
D:\eclipse是您项目的根文件夹。如果您D:\java在同一个工作区中创建另一个项目,new File("").getAbsolutePath()将返回D:\java,因此这与您的工作区的路径无关。
如果您想在项目中创建一个文件夹,请使用.,例如:
System.out.println(new File(".\\test").getAbsolutePath());