System.IO.FileStream vs кэш


#1

Мне надо было разрезать файл на 30 гигабайт на меньшие, а потом собрать на другом компьютере (флешки на 30 гигов нету, только 7 с чем то).

Я решил написать простейшую программу, которая будет считывать куски по пол гига из исходного файла (с помощью System.IO.FileStream.Read(array, offset, count)) и записывать их в новый файл, сохраняя и открывая следующий когда набирается 7 гигов. Всё сработало, но с 1 большим НО.

Программа почему то всё время пыталась засунуть всё что могла в оперативную память, в виде кеша. От этого весь компьютер начинал тормозить, и после окончания кромсания того файла - его не отпускало, вся оперативка освобождалась только перезагрузкой.

Есть ли способ отключить кеширование для System.IO.FileStream, или как то обойти это (типа другого метода работы с файлами)?


#2

Попробуйте установить размер буффера для потока.На сколько я помню, он устанавливается по параметру конструктора.


#3

Там ведь указывается размер стека, а у меня проблема с кучей.


#5

Сергей, аналогичный вопрос, насколько решаемо?


#6

Я не нашёл решения.