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

Java 如何在Eclipse中输入目录作为参数,java,eclipse,Java,Eclipse,基本上,我有一个目录,里面有一些文件。在运行配置中,我试图将目录作为参数放置,如:\(workspacename\directory。然后,以下代码应创建该目录中所有文件的列表: String directory = args[1]; File folder = new File(directory); File[] allFiles = folder.listFiles(); ArrayList<File> properFiles = null; for (File file: a

基本上,我有一个目录,里面有一些文件。在运行配置中,我试图将目录作为参数放置,如:
\(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);
    }
}
String目录=args[1];
文件夹=新文件(目录);
File[]allFiles=folder.listFiles();
ArrayList属性文件=null;
用于(文件:所有文件){
if(file.getName().endsWith(“.dat”)){
添加(文件);
}
}

我面临的问题是,出于某种原因,所有文件都是空的。

我将猜测您的问题可能是什么:

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

因此,
新文件(目录)
将与应用程序启动的位置相关。在Eclipse中,默认工作目录位于项目中。因此,如果您的项目位于工作区的顶层,它将类似于
workspacename/project


您可以尝试打印出
文件夹.getAbsolutePath()
文件夹.exists()
文件夹.isDirectory()
,以帮助诊断您的问题。

我将猜测您的问题可能是什么:

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

因此,
新文件(目录)
将与应用程序启动的位置相关。在Eclipse中,默认工作目录位于项目中。因此,如果您的项目位于工作区的顶层,它将类似于
workspacename/project


您可以尝试打印出
文件夹.getAbsolutePath()
文件夹.exists()
文件夹.isDirectory()
,以帮助诊断您的问题。

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

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

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


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

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

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

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

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