Есть ли у FileStream в C # максимальный размер файла, который он может использовать? - PullRequest
0 голосов
/ 06 октября 2018

Итак, в Visual Studio у меня есть простой fileStream, который выглядит следующим образом:

using (FileStream stream = new FileStream(Filename,FileMode.Append,FileAccess.Write))           
{                    
    long fourgigs = 1073741824L * 4;

    for (int y = 0; y < fourgigs; y++)
    {
       byte[] b = { 1 };

       stream.Write(b, 0, b.Length);
    }
}

Я ограничил его записью четырех гигабайт в файл, потому что, как только размер файла превышает четыре гигабайта, я получаю сообщение об ошибке:"Недостаточно места на диске".Поэтому мне просто интересно, является ли это пределом для FileStream или, возможно, потому, что я пишу в текстовый файл?

Для пояснения, на диске не осталось свободного места, диск имеет несколько сотен гигабайт.Любая помощь в этом вопросе, thx.

edit: Итак, я провел некоторые эксперименты, первоначально я пытался записать на USB-накопитель, вместо этого я решил записать на свой обычный жесткий диск.Интересно, что мой обычный жесткий диск будет записывать больше четырех гигабайт, а USB - нет.Я до сих пор не уверен, почему это так.Кто-нибудь знает, почему это?

1 Ответ

0 голосов
/ 06 октября 2018

Вы заметили, что это работает для вашего локального диска, но не для USB-накопителя.

Скорее всего, причина в том, что ваш USB-накопитель отформатирован как FAT32 или что-то подобное.Эта файловая система не может обрабатывать файлы размером более 4 ГБ

...