gpt4 book ai didi

java - 文件写入后无法删除

转载 作者:行者123 更新时间:2023-12-01 14:17:35 25 4
gpt4 key购买 nike

我将把我的代码放在第一位:

@Post
public Representation post(InputStream zip) throws Throwable {
createFile(zip, "C:/temp");
return new StringRepresentation("File uploaded");
}

public void createFilee(InputStream zipStream, uploadedFileLocation) throws Exception {
try {
writeToFile(zipStream, uploadedFileLocation);
FileUtils.forceDelete(new File(uploadedFileLocation));
} catch (Exception e) {
throw e;
}
}


private void writeToFile(InputStream uploadedInputStream, String uploadedFileLocation) {
try {
OutputStream out = new FileOutputStream(new File(uploadedFileLocation));
int read = 0;
byte[] bytes = new byte[1024];

out = new FileOutputStream(new File(uploadedFileLocation));
while ((read = uploadedInputStream.read(bytes)) != -1) {
out.write(bytes, 0, read);
}
out.flush();
out.close();
uploadedInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}

当我将文件发送到我的服务器时,它无法被删除。当使用FileUtils.forceDelete()时,它说它无法删除该文件。在尝试使用 file utils 删除文件后,我可以在服务器仍在运行时手动删除该文件。为什么它不能直接删除它自己?有任何想法吗?谢谢

编辑:问题可能是来自 POST 的 InputStream 在 POST 返回之前一直处于 Activity 状态吗?那么,即使我调用删除文件,该流仍然通过 POST 保持 Activity 状态?这可能吗?

最佳答案

根据我有限的 Windows 经验,这可能是两件事之一

我会检查一下1) 防病毒软件正在尝试扫描文件2) 某种索引器(系统或自定义)正在尝试索引文件。

您可以使用 processExplorer 之类的工具来查看哪个进程占用了文件描述符。 http://technet.microsoft.com/en-us/sysinternals/bb896653.aspx

关于java - 文件写入后无法删除,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17979638/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com