如何在Eclipse中输入目录作为参数

时间:2010-10-08 02:37:06

标签: java eclipse

基本上,我有一个包含一些文件的目录。在运行配置中,我试图将目录作为这样的争论:\(workspacename\directory。然后,以下代码应创建该目录中所有文件的列表:

String directory = args[1];
File folder = new File(directory);
File[] allFiles = folder.listFiles();
ArrayList<File> properFiles = null;
for (File file: allFiles) {
    if(file.getName().endsWith(".dat")){
    properFiles.add(file);
    }
}

我面临的问题是,由于某种原因,allFiles为空。

2 个答案:

答案 0 :(得分:5)

我会猜测你的问题可能是什么:

如果您的参数是相对路径(而不是绝对路径,例如以“/”或“c:/”开头),请记住文件将相对于应用程序的工作目录。< / p>

所以new File(directory)将相对于应用程序的启动位置。在Eclipse中,默认工作目录位于项目中。因此,如果您的项目位于工作区的顶层,那么它将类似于workspacename/project

您可以尝试打印folder.getAbsolutePath()folder.exists()folder.isDirectory()来帮助诊断您的问题。

答案 1 :(得分:0)

如果目录实际上不存在(除其他外),javadocs说listFiles()将返回null

  

如果此抽象路径名不表示目录,或者发生I / O错误,则返回null。

通过验证(调试器或printf)args[1]值进行调试。

此外,您可能尝试使用替换变量在路径中插入工作空间位置。如果是这样,您需要再次验证(通过调试器或printf)占位符是否正确替换。