java.nio.file.FileSystemException: C:\p12\dummy.p12: 该进程无法访问该文件,因为它正被另一个进程使用

java.nio.file.FileSystemException: C:\p12\dummy.p12: The process cannot access the file because it is being used by another process

我有一个p12文件上传功能,代码如下:

-

然后我想创建一个删除p12文件的函数,代码如下:

-

而当我运行结果出现错误:

java.nio.file.FileSystemException: C:\p12\dummy.p12: The process cannot access the file because it is being used by another process.

有没有办法删除文件成功?

更新: 我发现了问题,显然是因为此函数中使用了 p12 文件:

-

还有办法删除p12文件吗?

异常告诉您有另一个进程打开了文件,因此无法删除。查看 Windows 中的系统进程(最有可能是应用程序),看看哪个应用程序打开了该文件。您是否在记事本等文本编辑器或命令行 shell 中打开了文件?你必须在那里关闭它才能删除它。

您打开文件

InputStream keyStoreStream = new FileInputStream(fileDir);

但是资源永远不会关闭。将相关部分包含在 try-with-resources 块中

Map<String, String> certSn;
try (InputStream keyStoreStream = new FileInputStream(fileDir)) {
    certSn =  = getP12Cert(keyStoreStream, passphrase.getPassphrase());
    // set up your assigneeModel here
} catch (IOException e) {
    // TODO throw or handle the exception however you need to
}

// rest of code here