Используя код:
using (var reader = new WaveFileReader(audioFileLocation))
{
// Do something....
}
Если задан wav файл, который генерирует исключение:
Не WAVE файл - нет заголовка RIFF
Сведения об исключении: System.FormatException: не WAVE файл - нет заголовка RIFF
Он блокирует файл audioFileLocation
который предотвращает его удаление.
Есть ли способ проверить наличие правильного заголовка RIFF перед использованием читателя?
Попробуйте использовать поток:
using(var inputStream = new FileStream(audioFileLocation, FileMode.Open,
FileAccess.Write, FileShare.ReadWrite))
{
using (var reader = new WaveFileReader(inputStream))
{
// Do something....
}
}
Если THIS является текущим кодом класса WaveFileReader
он использует File.OpenRead(waveFile)
в "перегрузке строки" константы, и возвращаемый Stream
кажется не закрытым/удаленным. Может быть, уже работает follownin:
using(var inputStream = File.OpenRead(audioFileLocation))
{
using (var reader = new WaveFileReader(inputStream))
{
// Do something....
}
}
поскольку это должно распоряжаться потоком.
WaveFileReader
класс WaveFileReader
все еще содержит ошибку.
WaveFileReader
, которая не закрывает файл. Где вы взяли этот класс?