我一直在使用一段特定的代码来删除文件夹中的文件,但它被证明是非常有问题的,因为也许我忘记关闭一个或两个输入流。我的代码是如此之大,我无法看到所有的输入流,我还没有关闭。是否有一种方法删除文件是否有一个开放的输入流或没有?
这是我一直在使用的一段代码;
File fin = new File("C:/ABC Statements final/");
File[] finlist = fin.listFiles();
for (int n = 0; n < finlist.length; n++) {
if (finlist[n].isFile()) {
System.gc();
Thread.sleep(2000);
finlist[n].delete();
}
}
我已经编辑了代码。这个版本可以用。
7条答案
按热度按时间ecbunoof1#
提供的代码块中没有InputStream示例。
为了避免编写大量未经测试的IO代码,请查看apache.commons.io项目。特别是FileDeleteStrategy类,用于文件删除操作。
你的代码可能看起来像这样:
pkwftd7m2#
您可以用途:
从Apache Commons开始
d4so4syb3#
使用Apache Commons IO:
不需要以这种方式检查异常。
mccptt674#
用途:
文件:
为了使用它,你需要一个依赖项:
Maven:
年级:
jv4diomz5#
1cklez4t6#
oaxa6hgo7#
我只是这样做了,它工作得很好: