Разница - это время чтения содержимого файла.
Если вы передаете true
для readIntoMemory
, поток файлов открывается, считывается в память и закрывается, и все это происходит во время WriteFile
. С другой стороны, если вы передадите false
, поток файлов откроется и снова закроется без чтения (просто чтобы убедиться, что файл существует). Вместо этого информация о том, какой файл записать, передается в некоторый внутренний буфер (с использованием внутреннего метода HttpWriter.WriteFile
). Позже (возможно, когда ответ сброшен, но я не проверил это), содержимое файла будет прочитано.
Рассмотрим следующий код:
protected void Page_Load(object sender, EventArgs e)
{
Response.WriteFile(@"C:\myFile", false);
System.IO.File.Move(@"C:\myFile", "C:\myFile2");
Response.End();
}
Обратите внимание, что ваш браузер не получит ответ, т. Е. Во время Response.End
что-то идет ужасно плохо. Установка readIntoMemory
на true
позволяет избежать этой проблемы.