• 企业400电话
  • 微网小程序
  • AI电话机器人
  • 电商代运营
  • 全 部 栏 目

    企业400电话 网络优化推广 AI电话机器人 呼叫中心 网站建设 商标✡知产 微网小程序 电商运营 彩铃•短信 增值拓展业务
    ASP.NET批量下载文件的方法

    本文实例讲述了ASP.NET批量下载文件的方法。分享给大家供大家参考。具体方法如下:

    一、实现步骤

    在用户操作界面,由用户选择需要下载的文件,系统根据所选文件,在服务器上创建用于存储所选文件的临时文件夹,将所选文件拷贝至临时文件夹。然后调用 RAR程序,对临时文件夹进行压缩,然后输出到客户端。最后删除临时文件夹。
     
    二、代码实现
     
    1、ASP.NET批量下载 核心代码

    复制代码 代码如下:
    //遍历服务器指定文件夹下的所有文件
    string path = "uploads/Image/";
    string serverPath = Server.MapPath(path);
    //创建临时文件夹
    string tempName = DateTime.Now.ToString("yyyyMMddHHMMss");
    string tempFolder = Path.Combine(serverPath, tempName);
    Directory.CreateDirectory(tempFolder);
    DirectoryInfo folder = new DirectoryInfo(serverPath);
    foreach (FileInfo file in folder.GetFiles())
    {
     string filename = file.Name;
     File.Copy(serverPath + "/" + filename, tempFolder + "/" + filename);
    }
    //ZKHelper.JSHelper.Alert("图片拷贝成功!");
    //产生RAR文件,及文件输出
    RARSave(tempFolder, tempName);
    DownloadRAR(tempFolder + "\\\\" + tempName + ".rar");

     
    2、RARSave(string tempFolder, string tempName) 方法

    复制代码 代码如下:
    /// summary>
    /// 生成RAR文件
    /// /summary>
    /// param name="path">存放复制文件的目录/param>
    /// param name="rarPatch">RAR文件存放目录/param>
    /// param name="rarName">RAR文件名/param>
    private void RARSave(string rarPatch, string rarName)
    {
        string the_rar;
        RegistryKey the_Reg;
        Object the_Obj;
        string the_Info;
        ProcessStartInfo the_StartInfo;
        Process the_Process;
        try
        {
     the_Reg = Registry.ClassesRoot.OpenSubKey(@"WinRAR");
     the_Obj = the_Reg.GetValue("");
     the_rar = the_Obj.ToString();
     the_Reg.Close();
     the_rar = the_rar.Substring(1, the_rar.Length - 7);
     the_Info = " a " + rarName + " -r";
     the_StartInfo = new ProcessStartInfo();
     the_StartInfo.FileName = "WinRar";//the_rar;
     the_StartInfo.Arguments = the_Info;
     the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
     //打包文件存放目录
     the_StartInfo.WorkingDirectory = rarPatch;
     the_Process = new Process();
     the_Process.StartInfo = the_StartInfo;
     the_Process.Start();
     the_Process.WaitForExit();
     the_Process.Close();
        }
        catch (Exception)
        {
     throw;
        }
    }

     
    3、DownloadRAR(string file)方法

    复制代码 代码如下:
    /// summary>
    /// 下载生成的RAR文件
    /// /summary>
    private void DownloadRAR(string file)
    {
        FileInfo fileInfo = new FileInfo(file);
        Response.Clear();
        Response.ClearContent();
        Response.ClearHeaders();
        Response.AddHeader("Content-Disposition", "attachment;filename=" + fileInfo.Name);
        Response.AddHeader("Content-Length", fileInfo.Length.ToString());
        Response.AddHeader("Content-Transfer-Encoding", "binary");
        Response.ContentType = "application/octet-stream";
        Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
        Response.WriteFile(fileInfo.FullName);
        Response.Flush();
        string tempPath = file.Substring(0, file.LastIndexOf("\\\\"));
        //删除临时目录下的所有文件
        DeleteFiles(tempPath);
        //删除空目录
        Directory.Delete(tempPath);
        Response.End();
    }

    4、DeleteFiles(string tempPath) 方法

    复制代码 代码如下:
    /// summary>
    /// 删除临时目录下的所有文件
    /// /summary>
    /// param name="tempPath">临时目录路径/param>
    private void DeleteFiles(string tempPath)
    {
        DirectoryInfo directory = new DirectoryInfo(tempPath);
        try
        {
     foreach (FileInfo file in directory.GetFiles())
     {
         if (file.Attributes.ToString().IndexOf("ReadOnly") != -1)
         {
      file.Attributes = FileAttributes.Normal;
         }
         File.Delete(file.FullName);
     }
        }
        catch (Exception)
        {
     throw;
        }
    }

    希望本文所述对大家的asp.net#程序设计有所帮助。

    您可能感兴趣的文章:
    • ASP.NET Web Api 2实现多文件打包并下载文件的实例
    • ASP.NET(C#) Web Api通过文件流下载文件的实例
    • ASP.NET 在下载文件时对其重命名的思路及实现方法
    • asp.net C#实现下载文件的六种方法实例
    • ASP.NET中下载文件的几种实例代码
    • 在ASP.NET中下载文件的实现代码
    • asp.net BackgroundWorker之在后台下载文件
    • asp.net 下载文件时根据MIME类型自动判断保存文件的扩展名
    • asp.net 下载文件时输出文件内容
    • asp.net Web Services上传和下载文件(完整代码)
    • ASP.NET实现从服务器下载文件问题处理
    上一篇:ASP.NET私有构造函数用法分析
    下一篇:WPF实现渐变淡入淡出的登陆窗口效果
  • 相关文章
  • 

    © 2016-2020 巨人网络通讯 版权所有

    《增值电信业务经营许可证》 苏ICP备15040257号-8

    ASP.NET批量下载文件的方法 ASP.NET,批量,下载,文件,的,