如何显示父目录中所有子目录中的图片?(Java和Netbeans)

如何显示父目录中所有子目录中的图片?(Java和Netbeans),java,file,netbeans,graphics,directory,Java,File,Netbeans,Graphics,Directory,我正在写一个幻灯片,允许它显示的图片在显示时被删除、编辑或忽略。除了指向的目录包含子文件夹外,它工作正常。在这种情况下,我希望代码搜索子文件夹,并显示其中的图像。此时会忽略子文件夹并引发空指针异常,但会读取并显示主目录中的图像。这是守则的相关章节: String files; File folder = new File(path); //Loads folder File[] listOfFiles

我正在写一个幻灯片,允许它显示的图片在显示时被删除、编辑或忽略。除了指向的目录包含子文件夹外,它工作正常。在这种情况下,我希望代码搜索子文件夹,并显示其中的图像。此时会忽略子文件夹并引发空指针异常,但会读取并显示主目录中的图像。这是守则的相关章节:

    String files;
    File folder = new File(path);                                     //Loads folder
    File[] listOfFiles = folder.listFiles();                          //assigns filenames to array
    for (int i = 0; i < listOfFiles.length; i++) {

        //Some code here deals with graphics

        Random randomGenerator = new Random();                        //Initiates random generator
        int randomInt = randomGenerator.nextInt(listOfFiles.length);  //Limits max random to lenth of folder array
        files = listOfFiles[randomInt].getName();                     //Chooses a filename based on random number
        final String fileID = "file:///" + path + "\\" + files;       //creates path to display
        currentFile = path + "\\" + files;                            //Assigns filename to variable ready for deletion later
    }
字符串文件;
文件夹=新文件(路径)//加载文件夹
File[]listOfFiles=folder.listFiles()//为数组指定文件名
for(int i=0;i
我需要更多地将这些图像视为离散图像,而不仅仅是打印出它们的列表。我已经从这里的代码中排除了处理绘制到屏幕的代码片段(g.drawImage)

如果有人建议使用ApacheCommons IO FileUtils,请您解释一下我是如何下载、安装并导入正确的库的,因为我一直很难做到这一点(如果可以的话)。我更喜欢不需要非标准库的解决方案。我已经读到它在Java8中是可以做到的(我正在使用),但是我还没有找到任何相关的例子

如果这是一个重复的问题,我很抱歉,但是我找不到一个完全符合这些要求的类似示例。大多数其他示例似乎只满足于列出文件,而不是对其执行操作


非常感谢。

请参阅许多可能的解决方案我已经看到,但投票率最高的答案往往涉及Apach FileUtils或其他非标准库,其他答案列出主文件夹的内容,而不是进入单个子文件夹并读取其中包含的文件。这就是为什么我发布了我的具体示例,希望有人能友好地解决我的问题,而不是笼统的回答。递归(在目录搜索的上下文中)是一个过程,通过这个过程,你可以搜索主目录,如果它是一个文件,抓取它,如果它是一个目录,递归地遍历它。您可能想了解递归。这在处理文件时很重要。也就是说,大多数答案都使用标准库。有使用Java8的答案和用户低级API的答案。但在大多数情况下,我认为如果他们不做这项工作,他们不会被提升。为什么不将您的尝试显示为使用所示方法之一。请提供一个MCVE,展示你的尝试和结果。除此之外,我给你的任何答案都只是其中一个答案的重复。对不起,请你扩展一下“MCVE”好吗?我得到的印象是,这是一个堆栈溢出特定的首字母缩略词,我有点像个傻瓜(如果你不知道的话)。