如何列出当前目录下的文件?(How to list the files in current dir

2019-08-17 17:21发布

我希望能够列出当前目录下的文件。 我做了什么,应该工作,但不会返回所有的文件名。

File dir = new File(".");
File[] filesList = dir.listFiles();
for (File file : filesList) {
    if (file.isFile()) {
        System.out.println(file.getName());
    }
}

它返回.classpath ,但我敢肯定我有这个文件夹内的其他java文件。 也许对于当前文件夹中的点表示法是不正确的?

Answer 1:

也许对于当前文件夹中的点表示法是不正确的?

打印结果File.getCanonicalFile()检查路径。

为什么SRC不是当前文件夹中任何人都可以解释一下吗?

调用JVM时,您的IDE设置类路径。

EG(达到了Netbeans的),如果选择菜单File | Project Properties (all classes) ,你可能会看到类似:

这是Working Directory是在这里讨论。



Answer 2:

试试这个,来检索文件夹,子文件夹内的所有文件

public static void main(String[]args)
    {
        File curDir = new File(".");
        getAllFiles(curDir);
    }
    private static void getAllFiles(File curDir) {

        File[] filesList = curDir.listFiles();
        for(File f : filesList){
            if(f.isDirectory())
                getAllFiles(f);
            if(f.isFile()){
                System.out.println(f.getName());
            }
        }

    }

只检索文件/文件夹

public static void main(String[]args)
    {
        File curDir = new File(".");
        getAllFiles(curDir);
    }
    private static void getAllFiles(File curDir) {

        File[] filesList = curDir.listFiles();
        for(File f : filesList){
            if(f.isDirectory())
                System.out.println(f.getName());
            if(f.isFile()){
                System.out.println(f.getName());
            }
        }

    }


Answer 3:

有一个快速探听周围为这一个,但是这看起来像它应该工作。 我没有测试它尚未虽然。

    File f = new File("."); // current directory

    File[] files = f.listFiles();
    for (File file : files) {
        if (file.isDirectory()) {
            System.out.print("directory:");
        } else {
            System.out.print("     file:");
        }
        System.out.println(file.getCanonicalPath());
    }


Answer 4:

您应该验证new File(".")到你认为它是指向真的是指向- .classpath提出了一些Eclipse项目的根源....



Answer 5:

没有什么你的代码错误。 它应该列出所有被提名的目录直接包含的文件和目录。

问题是以下的最有可能的一种:

  • "." 目录是不是你希望它是什么。 的"." 路径其实就是JVM的“当前目录”或“工作目录”。 您可以验证什么目录"." 实际上是通过打印dir.getCanonicalPath()

  • 你是误会什么dir.listFiles()返回。 它不会在树底下返回的所有对象dir 。 它只返回那些直接对象(文件,目录,符号链接等) dir

".classpath"文件,建议您正在寻找一个Eclipse项目目录,和Eclipse项目通常在一个子目录中的Java文件配置,如"./src" 。 我不希望看到在任何Java源代码"." 目录。


为什么SRC不是当前文件夹中任何人都可以解释一下吗?”

假设你正在启动在Eclipse的应用程序,那么当前文件夹默认为项目目录。 您可以通过在启动配置向导面板之一更改默认的当前目录。



Answer 6:

你的代码提供了预期的结果,如果你编译并运行代码的独立(从命令行)。 至于在Eclipse由默认的工作目录中的每个项目的项目目录,这就是为什么你得到这个结果。

您可以设置user.dir来财产Java作为:

   System.setProperty("user.dir", "absolute path of src folder");

然后它会给预期的结果。



Answer 7:

我用这个答案跟我的本地目录(例如E:// )这是第一个目录和目录Seconde系列的输出做出一个Java空指针异常工作的罚款,寻找原因后,我发现这个问题是创建由隐藏目录,该目录是由窗口创建来避免这个问题只需要使用这个

public void recursiveSearch(File file ) {
 File[] filesList = file.listFiles();
    for (File f : filesList) {
        if (f.isDirectory() && !f.isHidden()) {
            System.out.println("Directoy name is  -------------->" + f.getName());
            recursiveSearch(f);
        }
        if( f.isFile() ){
            System.out.println("File name is  -------------->" + f.getName());
        }
    }
}


文章来源: How to list the files in current directory?