Search code examples
javaspringspring-bootniofilesystemexception

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


I have a p12 file upload function with the following code:

-

Then I want to create a function to delete the p12 file with the following code:

-

And when I run the result there is an error:

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

Is there a way for the file to be deleted successfully?

UPDATE : I've found the problem, apparently because the p12 file is used in this function:

-

Is there a way to still be able to delete the p12 file?


Solution

  • The exception is telling you that there is another process that has the file open and therefore it can't be deleted. Take a look at your system processes (most probably applications) in Windows and see which application has the file open. Do you have the file open in a text editor such as notepad or in a command line shell? You have to close it there before it can be deleted.

    You open the file

    InputStream keyStoreStream = new FileInputStream(fileDir);
    

    but the resource is never closed. Enclose the relevant parts in a try-with-resources block

    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