首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何在Java中删除被进程锁定的文件?

如何在Java中删除被进程锁定的文件?
EN

Stack Overflow用户
提问于 2018-07-28 21:26:42
回答 1查看 1.1K关注 0票数 0

我决定发布一个关于这个问题的新问题,因为现有的帖子都没有给我一个解决方案。我的是一个Spring Boot应用程序,下面是服务:

代码语言:javascript
复制
public String fetchPrediction(MultipartFile file) throws IOException, InterruptedException {
        File convFile = new File( System.getProperty("user.dir")+"/"+file.getOriginalFilename());
        convFile.setWritable(true);
        file.transferTo(convFile);
        INDArray array = new CustomerLossPrediction().generateOutput(convFile);
        Files.delete(Paths.get(convFile.getPath()));
        return array.toString();
    }

文件删除没有发生,它存储在用户主目录中:

发现Java进程正在使用该文件。执行完成后如何删除此文件?这里有比写文件更好的方法吗?你们中的一些人可能会在这里提出写入OutputStream,但请注意,我需要使用MultipartFile才能具有文件上传功能。

EN

回答 1

Stack Overflow用户

发布于 2018-07-29 04:41:22

我不知道这是否可行,但我认为您可以将文件重命名为随机生成的字符串,然后锁定、读取、解锁,然后删除重命名的文件。从理论上讲,另一个程序可以猜测文件名并在文件解锁后删除之前立即读取该文件。但在实践中,您可能会很好。

票数 -1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51571843

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档