首页 > Web开发 > 详细

ASP.NET批量下载服务器端指定目录文件

时间:2014-07-14 21:45:24      阅读:413      评论:0      收藏:0      [点我收藏+]
 1             //遍历服务器指定文件夹下的所有文件
 2             string path = "uploads/Image/";
 3             string serverPath = Server.MapPath(path);
 4 
 5             //创建临时文件夹
 6             string tempName = DateTime.Now.ToString("yyyyMMddHHMMss");
 7             string tempFolder = Path.Combine(serverPath, tempName);
 8             Directory.CreateDirectory(tempFolder);
 9 
10             DirectoryInfo folder = new DirectoryInfo(serverPath);
11             foreach (FileInfo file in folder.GetFiles())
12             {
13                 string filename = file.Name;
14                 File.Copy(serverPath + "/" + filename, tempFolder + "/" + filename);
15             }
16             //ZKHelper.JSHelper.Alert("图片拷贝成功!");
17             //产生RAR文件,及文件输出
18             RARSave(tempFolder, tempName);
19             DownloadRAR(tempFolder + "\\" + tempName + ".rar");
 1         /// <summary>
 2         /// 生成RAR文件
 3         /// </summary>
 4         /// <param name="path">存放复制文件的目录</param>
 5         /// <param name="rarPatch">RAR文件存放目录</param>
 6         /// <param name="rarName">RAR文件名</param>
 7         private void RARSave(string rarPatch, string rarName)
 8         {
 9             string the_rar;
10             RegistryKey the_Reg;
11             Object the_Obj;
12             string the_Info;
13             ProcessStartInfo the_StartInfo;
14             Process the_Process;
15             try
16             {
17                 the_Reg = Registry.ClassesRoot.OpenSubKey(@"WinRAR");
18                 the_Obj = the_Reg.GetValue("");
19                 the_rar = the_Obj.ToString();
20                 the_Reg.Close();
21                 the_rar = the_rar.Substring(1, the_rar.Length - 7);
22                 the_Info = " a " + rarName + " -r";
23                 the_StartInfo = new ProcessStartInfo();
24                 the_StartInfo.FileName = "WinRar";//the_rar;
25                 the_StartInfo.Arguments = the_Info;
26                 the_StartInfo.WindowStyle = ProcessWindowStyle.Hidden;
27                 //打包文件存放目录
28                 the_StartInfo.WorkingDirectory = rarPatch;
29                 the_Process = new Process();
30                 the_Process.StartInfo = the_StartInfo;
31                 the_Process.Start();
32                 the_Process.WaitForExit();
33                 the_Process.Close();
34             }
35             catch (Exception)
36             {
37                 throw;
38             }
39         }    

下载生成的RAR文件

 1         /// <summary>
 2         /// 下载生成的RAR文件
 3         /// </summary>
 4         private void DownloadRAR(string file)
 5         {
 6             FileInfo fileInfo = new FileInfo(file);
 7             Response.Clear();
 8             Response.ClearContent();
 9             Response.ClearHeaders();
10             Response.AddHeader("Content-Disposition", "attachment;filename=" + fileInfo.Name);
11             Response.AddHeader("Content-Length", fileInfo.Length.ToString());
12             Response.AddHeader("Content-Transfer-Encoding", "binary");
13             Response.ContentType = "application/octet-stream";
14             Response.ContentEncoding = System.Text.Encoding.GetEncoding("gb2312");
15             Response.WriteFile(fileInfo.FullName);
16             Response.Flush();
17             string tempPath = file.Substring(0, file.LastIndexOf("\\"));
18             //删除临时目录下的所有文件
19             DeleteFiles(tempPath);
20             //删除空目录
21             Directory.Delete(tempPath);
22             Response.End();
23         }    
 1          /// <summary>
 2         /// 删除临时目录下的所有文件
 3         /// </summary>
 4         /// <param name="tempPath">临时目录路径</param>
 5         private void DeleteFiles(string tempPath)
 6         {
 7             DirectoryInfo directory = new DirectoryInfo(tempPath);
 8             try
 9             {
10                 foreach (FileInfo file in directory.GetFiles())
11                 {
12                     if (file.Attributes.ToString().IndexOf("ReadOnly") != -1)
13                     {
14                         file.Attributes = FileAttributes.Normal;
15                     }
16                     File.Delete(file.FullName);
17                 }
18             }
19             catch (Exception)
20             {
21                 throw;
22             }
23         }

 

ASP.NET批量下载服务器端指定目录文件,布布扣,bubuko.com

ASP.NET批量下载服务器端指定目录文件

原文:http://www.cnblogs.com/lavalike/p/3842481.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!