Определить частичную загрузку (WAV-файл)
Есть ли способ определить, был ли файл загружен только частично в C#? В частности, я говорю о WAV-файле, загружаемом в сетевой путь (например, на общий диск), который остановился из-за проблем с сетью или чего-то еще.
Я моделирую это, отключив сетевой кабель в середине передачи. Но я обнаружил, что файл создается на другой стороне, но размер файла - это полный размер файла, и даже длина записи (полученная с помощью метода, описанного ниже) равна полной длине. Но когда я играю файл, звук просто обрывается в середине файла, а остальная часть просто продолжает воспроизводиться в тишине (предположительно там, где я отключил сетевой кабель).
Вот как я получаю длину записи.
StringBuilder bufferLengthStr = new StringBuilder(32);
mciSendString(string.Format("open \"{0}\" type waveaudio alias wave", fileName), null, 0, IntPtr.Zero);
mciSendString("status wave length", bufferLengthStr, bufferLengthStr.Capacity, IntPtr.Zero);
mciSendString("close wave", null, 0, IntPtr.Zero);
int recordingLength = 0;
int.TryParse(bufferLengthStr.ToString(), out recordingLength);
Теперь дело в том, что я знаю, как долго должен быть файл, но описанный выше метод возвращает полную длину, даже если эта полная длина не была заполнена звуком.