Запрашиваемая операция не может быть завершена из -за ограничения файловой системыC#

Место общения программистов C#
Ответить Пред. темаСлед. тема
Anonymous
 Запрашиваемая операция не может быть завершена из -за ограничения файловой системы

Сообщение Anonymous »

во время записи в файл .gz и когда размер файла достигает около 291 261 644 800 байт , я получаю следующее.

Код: Выделить всё

at System.IO.Strategies.BufferedFileStreamStrategy.WriteSpan(ReadOnlySpan`1 source, ArraySegment`1 arraySegment)
at System.IO.Strategies.BufferedFileStreamStrategy.Write(Byte[] buffer, Int32 offset, Int32 count)
at System.IO.StreamWriter.Flush(Boolean flushStream, Boolean flushEncoder)
at System.IO.StreamWriter.WriteLine(String value)
Вот упрощенный код:

Код: Выделить всё

using var reader = new StreamReader(inputFilename);
using var writer = new StreamWriter(new GZipStream(File.Create(outputFilename), CompressionMode.Compress));

while ((line = reader.ReadLine()) != null)
{
// process `line`
writer.WriteLine(line);
}
Несколько проверок:
  • Раздел имеет тип NTFS и не заполнен.
  • Имя выходного файла не блокируется и не открывается какой-либо другой программой.
Мой текущий обходной путь — запись в несколько файлы меньшего размера вместо одного большого файла, а затем катировать файлы в Linux. Это не идеальный вариант, поскольку он занимает в два раза больше времени и удваивает требования к объему памяти для и без того очень большого файла ().
мне было интересно, не упускаю ли я что -то в Stremwriter .

Подробнее здесь: https://stackoverflow.com/questions/793 ... limitation
Реклама
Ответить Пред. темаСлед. тема

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

  • Похожие темы
    Ответы
    Просмотры
    Последнее сообщение

Вернуться в «C#»