我有一个工作树,如下:
Root
├─Site1
| ├─file.def
| ├─subfolder1
| └─subfolder2
├─Site2
| ├─file.def
| ├─subfolder1
| └─subfolder2
└─Site3
└...
子文件夹中包含数千个文件。现在,我想读取file.def,其中包含有关站点子文件夹的数据,然后根据所述数据打开子文件夹。我很确定有更好的方法,但这是我的解决方案:
Collection<File> DefFiles = FileUtils.listFiles("C:/Root", acceptmapDef, true); //listFiles Accepting def files only
Collection<File> Otherfiles = FileUtils.listFiles("C:/Root"), acceptMapOthers, true); //listFiles Accepting every other file
for(Files def: DefFiles){
// Read def file
for(Files file: OtherFiles){
// creates a JSONObject from the correspondance between the def file
// and the html files found in the subfolders
}
}
现在,当我在unix上运行我的脚本时,经过一段时间后,该过程显然会崩溃并且抛出“太多文件打开”异常。 IMO,脚本读取所有文件两次的事实是一个问题,但由于我是fileUtils的新手,这是我找到的唯一方法。任何想法将不胜感激