比如一个虚拟目录http://123.45.67.89/pic/1目录下有50个文件,怎么在ASP.NET页面上放一个按钮,完成把此目录下的所有文件下载到客户端上?希望不要每次都提示打开或另存为刚才在BAIDU中搜ASP.NET下载的例子,出现最多的是"ASP.NET中上传下载文件"的文章,但我看此例只是上传啊,怎么没下载?
//检查上传文件不为空
   if(File1.PostedFile!=null)
   {     
    string nam = File1.PostedFile.FileName ;
    //取得文件名(抱括路径)里最后一个"."的索引
    int i= nam.LastIndexOf(".");
    //取得文件扩展名
    string newext =nam.Substring(i);
    //这里我自动根据日期和文件大小不同为文件命名,确保文件名不重复
    DateTime now = DateTime.Now; 
    string newname=now.DayOfYear.ToString()+File1.PostedFile.ContentLength.ToString(); 
    //保存文件到你所要的目录,这里是IIS根目录下的upload目录.你可以改变.
    //注意: 我这里用Server.MapPath()取当前文件的绝对目录.在asp.net里""必须用""代替
    File1.PostedFile.SaveAs(Server.MapPath("upload"+newname+newext));     this.HyperLink1.NavigateUrl  ="upload"+newname+newext;    //得到这个文件的相关属性:文件名,文件类型,文件大小
    //fname.Text=File1.PostedFile.FileName;
    //fenc.Text=File1.PostedFile.ContentType ;
    //fsize.Text=File1.PostedFile.ContentLength.ToString();
   }

解决方案 »

  1.   

    遍历目录总会吧,用程序调用WINRAR打包所有文件,再跳转到打包文件名,中间可能要有一定的时间隔,打包需要一定的时间视打包文件的大小多少而定了
      

  2.   

    用winrar 输入打包整个目录.
      

  3.   

    比如,当前文件夹下有个aa目录,
    用winrar打包的命令是
    rar a -r d:\newfile.rar d:\aa\*.*
      

  4.   


    从服务器下载文件是要通过用户允许/所以每次都会提示!你可以用BT或迅雷下载(有的可以打包下/但有的就不行/我也不明白)等我就是用上面的下了些文件(有关.net的)
      

  5.   

    希望不要每次都提示打开或另存为
    ========================》
    如果可以这样的话那给客户端装个木马或者病毒什么的就太容易了:)
    除非你用activeX控件或者内嵌的winform控件并且有足够的权限,否则绝不可能不提示就直接保存在客户端的硬盘上
      

  6.   

    web的话只能逐个确认,不然就只能在服务端打包好再提供下载