Я использую следующий код для записи в сжатый файл, который я создаю каждый раз каждый раз..NET GZipStream и исключение из дискового пространства
using (FileStream fs = File.Open(sortOrderFileName, FileMode.Create,FileAccess.Write, FileShare.ReadWrite))
using (System.IO.Compression.GZipStream gzip = new System.IO.Compression.GZipStream(fs, System.IO.Compression.CompressionMode.Compress))
using (StreamWriter sw = new StreamWriter(gzip))
{
// use the streamwriter sw to write to the stream
}
Однако, когда я запускаю это, я получаю исключение IOException с сообщением «Из дискового пространства». Однако на диске, на котором я пишу файл, имеется 19 ГБ пространства.
В соответствии с документами для GZipStream он не может использоваться для записи файла размером более 4 ГБ. Однако файл, написанный до сих пор, составляет всего 250 МБ.
Вот исключение:
Тип: System.IO.IOException Исключение Msg: Существует не хватает места на диске.
Внутренняя Исключение: StackTrace: в System.IO .__ Error.WinIOError (Int32 ERRORCODE, String maybeFullPath) в System.IO.FileStream.WriteCore (байт [] буфера, Int32 смещение, Int32 счета) в системе. IO.FileStream.FlushWrite (Boolean calledFromFinalizer) в System.IO.FileStream.Dispose (Boolean) располагающей в System.IO.Stream.Close() в System.IO.Compression.DeflateStream.Dispose (булево утилизации) на System.IO.Stream.Close() at System.IO.Compression.GZipStream.Dispose (Boolean disposing) at System.IO.Stream.Close() at System.IO.StreamWriter.Dispose (Boolean disposing) at System.IO.StreamWriter.Close()
Кроме того, это не сетевой файл.
Любые идеи, что я делаю неправильно здесь?
«на диске, на котором я пишу файл»: это локальный или сетевой диск? –
Возможно, вам стоит показать дополнительный код. Три самих применения самих заявлений не похожи на то, что они вызовут проблему. И что такое исключение stacktrace? – Cheeso