#java #spring #spring-boot #nio #filesystemexception
Вопрос:
У меня есть функция загрузки файлов p12 со следующим кодом:
-
Затем я хочу создать функцию для удаления файла p12 со следующим кодом:
-
И когда я запускаю результат, появляется ошибка:
java.nio.file.FileSystemException: C:p12dummy.p12: The process cannot access the file because it is being used by another process.
Есть ли способ успешно удалить файл?
ОБНОВЛЕНИЕ : Я обнаружил проблему, по-видимому, потому, что в этой функции используется файл p12:
-
Есть ли способ по-прежнему иметь возможность удалить файл p12?
Ответ №1:
Исключение говорит вам, что есть другой процесс, в котором файл открыт, и поэтому он не может быть удален. Взгляните на свои системные процессы (скорее всего, приложения) в Windows и посмотрите, в каком приложении открыт файл. У вас есть файл, открытый в текстовом редакторе, таком как блокнот, или в командной строке? Вы должны закрыть его там, прежде чем его можно будет удалить.
Вы открываете файл
InputStream keyStoreStream = new FileInputStream(fileDir);
но ресурс никогда не закрывается. Заключите соответствующие части в блок «Попробуйте с ресурсами».
Maplt;String, Stringgt; 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
Комментарии:
1. Я ничего не буду открывать. Похоже, что файл используется в другой функции. Но я не знаю, где именно. Есть ли способ остановить запущенный процесс?
2. Я обновил свой вопрос, я включил функцию, для которой требуется файл p12. Можете ли вы проверить и дать мне решение. Я был бы очень признателен.
3. Я рад, что это помогло вам, но почему вы удалили весь код, который опубликовали? Этот вопрос может быть полезен другим людям.