C# 从子目录下载文件时保留子目录名称

C# 从子目录下载文件时保留子目录名称,c#,asp.net,download,C#,Asp.net,Download,我正在通过一个C#ASPX页面下载一个文件。文件以temp\GUID\file.zip的形式在URL文件参数中传递。我的代码: void Page_Load(object sender, EventArgs e) { if (!this.Page.IsPostBack) { if (Request.QueryString["File"] != null) { Response.Buf

我正在通过一个C#ASPX页面下载一个文件。文件以temp\GUID\file.zip的形式在URL文件参数中传递。我的代码:

   void Page_Load(object sender, EventArgs e)
   {
       if (!this.Page.IsPostBack)
       {
           if (Request.QueryString["File"] != null)
           {
               Response.BufferOutput = true;
               if (Request.QueryString["File"].Contains( "zip" ))
                   Response.ContentType = "application/zip"; //varies depending on the file being streamed
               Response.AddHeader( "Content-Disposition", "attachment; filename=\"" + Request.QueryString["File"] + "\"" );
               Response.WriteFile( Server.MapPath( Request.QueryString["File"] ) );
           }
       }
   }
问题是,该文件在我的下载目录中显示为
tempguidfile
(例如:temp07e315af-13c6-4537-92df-fae95cc0039fFile.zip)。如何获取
Response.Writefile()
TransmitFile()
,或类似的内容,以便将文件保存在下载目录中,只需将其保存为file.zip

行中:

Response.AddHeader(“内容处置”,“附件;文件名=\”+请求.查询字符串[“文件”]+“\”)


删除
Request.QueryString[“File”]
并放入您自己的文件名。

/me按下DUH按钮。我的实际实现是:我通过
Path.GetFileName()
将文件名作为单独的参数传递,并使用
Request.QueryString[“Filename”]
作为文件名头。