·您现在的位置: 云翼网络 >> 文章中心 >> 网站建设 >> 网站建设开发 >> ASP.NET网站开发 >> ASP.NET批量下载文件

ASP.NET批量下载文件

作者:佚名      ASP.NET网站开发编辑:admin      更新时间:2022-07-23

asp.net批量下载文件

一、实现步骤

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

二、代码实现

1、ASP.NET批量下载 核心代码C# 代码 复制
//遍历服务器指定文件夹下的所有文件            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) 方法

C# 代码 复制
/// <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)方法

C# 代码 复制