如何删除上传到目录中的同一文件?

时间:2015-07-23 06:53:30

标签: java file servlets file-upload file-io

存在用户上传的文件的文件夹临时文件。每个用户的文件名相同,但内容不同。每个用户上传一个名为abc.xlsx的文件。现在当“A”用户在处理该文件后上传abc.xlsx文件时应该删除。但目前我正在删除文件夹中的所有文件。这是一个问题,因为还有一个用户可能正在上传文件,因为它也将被清除。所以我想通过将用户名附加到文件然后删除该特定文件来重命名文件。

这是文件上传:

ProcessForm uploadForm = (ProcessForm)form;

         String folderpath = "servers/temp";
         String filePath = folderpath + "/" + uploadForm.getUploadedFile().getFileName();

这将删除文件夹中的所有文件:

 String tempPath = folderpath; 
            File file = new File(tempPath);
            File[] files = file.listFiles(); 
            for (File f:files) 
            {
                if (f.isFile() && f.exists()) 
                { 
                    f.delete();
}
}

1 个答案:

答案 0 :(得分:0)

我想我明白了。这是按预期工作的:

         String folderpath = "servers/temp";
         String filePath = folderpath + "/" + "abc_"+user.getUsername()+".xlsx";

         outputStream = new FileOutputStream(new File(filePath));
         outputStream.write(uploadForm.getUploadedFile().getFileData());    

删除文件的代码:

        File file = new File(filePath);
        boolean fileDelete = file.delete();

            if (fileDelete) 
            { 
                    mLogger.debug("successfully deleted");
            } else {
                mLogger.error("cant delete a file");
            }