问题:我需要确保文件系统中存在特定的目录层次结构,如果不存在则创建它。
我知道有该方法,File.mkdirs()
但是该方法的 javadocs 表明它可能无法创建完成给定路径所需的部分或全部目录。
为了解决这个问题,我创建了一个方法,它接受一个表示路径的字符串并将其解析为各个部分,并将它们存储到一个ArrayList<String>
. 然后,第二种方法将遍历并构建目录,确保每个目录和子目录都存在。
问题是,实际程序在尝试循环并将字符串分解为各个部分时会耗尽内存。我知道这不是功能;它在 JUnit 测试中完美地独立运行,并且程序本身不是很占用内存。此时,它只是设置目录并将它们存储到“DataBank”类中 - 没什么大不了的,只是一个存储一堆字符串的类。
我想弄清楚是什么导致了问题;我可以在代码停止时回复有效的不同类。
但是,更简单的解决方案可能只是使用File.mkdirs()
. 什么会导致File.mkdirs()
不创建目录?会不会是权限不够?
如果可以的话,我想简化这个过程,而不是试图重新发明轮子。但与此同时,我知道程序不应该内存不足——我正在存储字符串并执行文件操作,没有什么超级密集的。