这应该是一个非常简单的问题,但 Google + 我的代码无法解决。
在 Windows 上的 Eclipse 中,我希望我的程序在某个文件夹中查找。该文件夹直接在Project文件夹内,与.settings
、bin
、src
等处于同一层级。我的文件夹名为surveys
,这就是我希望我的 File
对象指向的那个。
我不想指定完整路径,因为我希望它能在我的两台计算机上运行。只是直接在我的项目中的路径。
我正在尝试这段代码,但它不起作用 - names[]
返回 null。是的,我在 surveys
中有一些文件夹和测试垃圾。
File file = new File("/surveys");
String[] names = file.list();
for(String name : names)
{
if (new File("/surveys/" + name).isDirectory())
{
System.out.println(name);
}
}
我确定我的错误出在传递给文件的字符串中,但我不确定哪里出了问题?
最佳答案
在您的问题中,您没有指定运行的平台。在非 Windows 上,前导斜杠表示绝对路径。最好删除前导斜杠。试试这个:
File file = new File("surveys");
System.out.println("user.dir=" + System.getProperty("user.dir"));
System.out.println("file is at: " + file.getCanonicalPath());
String[] names = file.list();
for(String name : names)
{
if (new File(file, name).isDirectory())
{
System.out.println(name);
}
}
确保在您的运行配置中,程序正在从项目目录 (user.dir = <projects>
) 运行
关于java - 创建File对象时如何指定目录?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13558250/