文件删除问题

时间:2015-02-27 13:19:06

标签: java file

我有这段代码,必须从目录和目录中删除文件:

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();
            }

1 个答案:

答案 0 :(得分:1)

在Windows上,文件删除并不总是成功是正常的,因为文件可以被系统上运行的各种服务锁定(防病毒,搜索索引等)。您需要在每个文件删除调用周围添加重试循环。