Библиотека 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())
            }
        }
        // ....
    }
Другие вопросы по тегам