代码之家  ›  专栏  ›  技术社区  ›  Chris Marisic

是什么HttpResponse.WriteFile文件方法参数bool readIntoMemory do?

  •  3
  • Chris Marisic  · 技术社区  · 15 年前

    是什么HttpResponse.WriteFile文件方法参数bool readIntoMemory do?

    MSDN documentation 在这方面是非常无益的,因为我遇到了这个方法,不知道我为什么要这样做或不这样做。

    注:

    3 回复  |  直到 15 年前
        1
  •  2
  •   Russ Cam    15 年前

    用Reflector来看,它似乎指示在将文件写入响应之前是否应该在内存中进行缓冲。

    文件是使用 FileStream WriteBytes .

    如果未设置标志,则使用将文件写入响应 WriteFile .

    HttpWriter 正在使用。如果不是这样,那么 WriteStreamAsText

        2
  •  6
  •   James Manning    15 年前

        3
  •  4
  •   Heinzi    15 年前

    如果你通过了 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 避免了这个问题。

    推荐文章