Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/file/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何从项目文件夹中获取文件_Java_File - Fatal编程技术网

Java 如何从项目文件夹中获取文件

Java 如何从项目文件夹中获取文件,java,file,Java,File,文件夹是/src/img。我需要从img文件夹和所有子文件夹中获取所有文件名(png文件)。我不知道文件夹的完整路径,所以我只需要关注项目资源。我需要他们排成一排。使用Java8和eclipsemars。 到目前为止,这是可行的: try { Files.walk(Paths.get("/home/fixxxer/NetBeansProjects/Installer/src/img/")).forEach(filePath -> { if (Files.isRe

文件夹是
/src/img
。我需要从
img
文件夹和所有子文件夹中获取所有文件名(
png
文件)。我不知道文件夹的完整路径,所以我只需要关注项目资源。我需要他们排成一排。使用Java8和eclipsemars。 到目前为止,这是可行的:

try {


Files.walk(Paths.get("/home/fixxxer/NetBeansProjects/Installer/src/img/")).forEach(filePath -> {
            if (Files.isRegularFile(filePath)) {
                System.out.println(filePath);
            }
        });
    } catch (IOException ex) {
        Logger.getLogger(InstallFrame.class.getName()).log(Level.SEVERE, null, ex);
    }
问题是文件夹的调用方式如下:
/img
因为它在项目内部 提前感谢:)

如果您放置文件

test.png

您可以从您的类访问它

org.example.InstallFrame
使用

分别

final InputStream resourceAsStream = InstallFrame.class.getResourceAsStream("test.png");
如果你把你的文件

test.png

您可以从您的类访问它

org.example.InstallFrame
使用

分别

final InputStream resourceAsStream = InstallFrame.class.getResourceAsStream("test.png");
你可以用。 这里,我假设
Installer
是您的项目名称。否则,可以根据项目设置编辑相对路径

Files.walk(Paths.get(".//src//img//")).forEach(filePath -> {
                if (Files.isRegularFile(filePath)) {
                    System.out.println(filePath);
                }
            });
你可以用。 这里,我假设
Installer
是您的项目名称。否则,可以根据项目设置编辑相对路径

Files.walk(Paths.get(".//src//img//")).forEach(filePath -> {
                if (Files.isRegularFile(filePath)) {
                    System.out.println(filePath);
                }
            });

首先找到基本路径,然后在代码中使用

 String basePath = ClassLoader.getSystemResource("").getPath();

 //move basepath to the path where img directory 
 //present in your project using ".." 
 //like basepath = basepath+"..\\..\\img"+

    Files.walk(Paths.get(testPath)).forEach(filePath -> {
        if (Files.isRegularFile(filePath)) {
            System.out.println(filePath);
        }
    });

首先找到基本路径,然后在代码中使用

 String basePath = ClassLoader.getSystemResource("").getPath();

 //move basepath to the path where img directory 
 //present in your project using ".." 
 //like basepath = basepath+"..\\..\\img"+

    Files.walk(Paths.get(testPath)).forEach(filePath -> {
        if (Files.isRegularFile(filePath)) {
            System.out.println(filePath);
        }
    });

我需要得到所有的文件,不仅仅是one@Ralfi你知道他们各自的名字吗,还是知道任意数量的文件?第一个是通过使用名称列表来管理的,第二个不在用于加载资源的类装入器API中,您必须自己考虑命名/目录方案(也就是说,使用
/tmp/installer
或任何其他确定的可供运行程序的机器使用的目录名,或使程序的用户可以配置路径)。很遗憾,我不知道这些名称。我需要获取所有文件。你能给我举一个类加载器api的例子吗?不,正如我写的那样“用于加载资源的类加载器API不包括第二个“。我需要得到所有的文件,不仅仅是one@Ralfi您知道它们各自的名称还是任意数量的文件?第一个文件可以使用名称列表进行管理,第二个文件不在加载资源的类加载器API中,您必须自己考虑命名/目录方案(也就是说,使用
/tmp/installer
或任何其他确定的可供运行程序的机器使用的目录名,或使程序的用户可以配置路径)。很遗憾,我不知道这些名称。我需要获取所有文件。你能给我举一个类加载器api的例子吗?不,正如我写的那样“用于加载资源的类加载器API不包括第二个”。