0

代码: - 列出所有文件检查文件是否为子目录并打印。在 if 子句中,我必须使用 createNewFile() 嵌入代码,以便在所有子目录中创建一个新文件。我该怎么做?

File directory = new File(directoryName);                          
    //get all the files from a directory            
    File[] fList = directory.listFiles();               
    for (File file : fList){                    
        if (file.isFile()){                         
            System.out.println("Files: " + file.getName());                     
        } else if (file.isDirectory()){     
            file.createNewFile();
            System.out.println("Subdirectory :" +file.getName());   

        }               
    }           
} 
4

2 回答 2

2

你的代码说的是:“如果我正在迭代的当前文件是一个目录,那么从这个目录创建一个新文件”。因此,file您的迭代就是file您要尝试创建的,如果可行,我会感到惊讶。相反,创建一个new File将此目录作为父目录。

就像是:

new File(file, "somefilename");
于 2013-05-03T05:09:18.610 回答
2

您需要为要创建的新文件指定一个新名称:

else if (file.isDirectory()){
            File nf = new File(file.getAbsolutePath()+File.separator+"newFile")     
            nf.createNewFile();
            System.out.println("Subdirectory :" +file.getName());   

        }

像这样的东西。

于 2013-05-03T05:09:43.400 回答