zoukankan      html  css  js  c++  java
  • ASP.NET批量下载服务器端指定目录文件

     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         }
  • 相关阅读:
    JDBC编程总结
    JDBC
    Java之Hashtable、HashMap及Properties
    List集合和Set集合的基本应用
    为什么Java中有多态?
    面向对象的特征有哪些?
    Java基础测试题背后的认知
    PHP实现将浏览历史页面网址保存到cookie的方法
    字符串的常用函数
    SAP中寻找增强的实现方法(转)
  • 原文地址:https://www.cnblogs.com/lavalike/p/3842481.html
Copyright © 2011-2022 走看看