java - 创建File对象时如何指定目录?

标签 java eclipse file formatting directory

这应该是一个非常简单的问题,但 Google + 我的代码无法解决。

在 Windows 上的 Eclipse 中,我希望我的程序在某个文件夹中查找。该文件夹直接在Project文件夹内,与.settingsbinsrc等处于同一层级。我的文件夹名为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/

相关文章:

java - 使用外部 Intent/应用程序打开文件

c++ - C++从文件中读取数据

java - 使用地理数学查找半径内的所有值

c - 使 Eclipse CDT 预先包含一个头文件,以避免错误 : "Symbol <symbol> could not be resolved"

java - 在 jmeter.bat 文件中,NewSize 和 MaxNewSize 的用途是什么?

android - 收集要安装的项目时出错

java - 为什么导入 javax.servlet.*;尽管安装了 Java EE 仍无法解决 |面向 Java EE 开发人员的 Eclipse

c - 在 C 中使用 gets 获取文件名时,文件会打开,但在使用 fgets 时不会打开

Java Regex 计算并删除行首的空格?

java - JSF2 Form 到 DB 特殊字符处理