我有这段代码,必须从目录和目录中删除文件:
private static void removeTempFiles(File dir){
if(!dir.exists())
return;
if(dir.isDirectory()){
for(File f : dir.listFiles())
removeTempFiles(f);
dir.delete();
}
else {
dir.delete();
}
}
但执行此代码不会删除所有文件。它会不时删除文件夹中的所有文件或只删除几个文件
UPD: 这是我创建的文件代码:
File tempFolder = new File(tempPath);
tempFolder.mkdir();
tempFolder.mkdirs();
FileOutputStream fileOut = new FileOutputStream(tempPath+"/"+fileName);
OutputStreamWriter osw = new OutputStreamWriter(fileOut, "windows-1251");
try{
osw.write(file64);
} catch (IOException e){
e.printStackTrace();
}finally {
osw.close();
fileOut.close();
}
答案 0 :(得分:1)
在Windows上,文件删除并不总是成功是正常的,因为文件可以被系统上运行的各种服务锁定(防病毒,搜索索引等)。您需要在每个文件删除调用周围添加重试循环。