Библиотека mp3agic java.io.IOException: невозможно удалить временный файл mp3 из \Tomcat\localhost\ROOT\file.tmp
Код работает совершенно нормально, но я получаю следующее исключение:
Caused by: java.io.IOException: Cannot delete
C:\Users\noob234\AppData\Local\Temp\tomcat.8080.5659248991534133251\work\Tomcat\localhost\ROOT\upload_1723fa92_3db6_497a_9bdc_ac298b991fc8_00000000.tmp
Я пробовал его как-то удалить или просто добавить сон на одну секунду, но, к сожалению, не могу от него избавиться.
Я пытаюсь получить некоторые поля из составного файла. Этот многочастный файл представляет собой mp3-файл. Вот фрагмент кода:
public void upload (MultipartFile file){
// ....
String fileName = file.getOriginalFilename();
if ("mp3".equals(extension)) {
try {
Mp3File mp3file = new Mp3File(fileName);
sampleRate = mp3file.getSampleRate();
} catch (Exception e) {
throw new Mp3Exception("Couldn't get mp3 fields: " + e.getMessage())
}
}
// ....
Имейте в виду, что в этом проекте я использую Java 8 и Gradle. Вот зависимость, которую я использую:
implementation 'com.mpatric:mp3agic:0.9.1'
1 ответ
Починил это:
implementation 'org:jaudiotagger:2.0.3'
public void upload(MultipartFile file){
// ....
String fileName = file.getOriginalFilename();
if ("mp3".equals(extension)) {
try {
File tempFile = File.createTempFile("temp", ".mp3");
file.transferTo(tempFile);
AudioFile audioFile = AudioFileIO.read(tempFile);
sampleRate = audioFile.getAudioHeader().getSampleRateAsNumber();
duration = audioFile.getAudioHeader().getTrackLength();
} catch (Exception e) {
throw new Mp3Exception("Couldn't get mp3 fields: " + e.getMessage())
}
}
// ....
}