0

我有一个 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 文件?

4

1 回答 1

0

例外是告诉您有另一个进程打开了文件,因此无法删除它。查看 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
于 2021-11-17T11:57:59.843 回答