亚洲激情专区-91九色丨porny丨老师-久久久久久久女国产乱让韩-国产精品午夜小视频观看

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

ASP.NET如何實現批量下載文件

發布時間:2021-06-30 16:02:30 來源:億速云 閱讀:173 作者:chen 欄目:開發技術

本篇內容介紹了“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如何實現批量下載文件”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

昌邑市| 扶沟县| 阿荣旗| 泰和县| 尼木县| 灵川县| 民权县| 灵丘县| 石林| 汾阳市| 泾阳县| 凤凰县| 华容县| 凤山市| 德兴市| 屏山县| 淳安县| 新田县| 从江县| 浑源县| 汤原县| 鹿邑县| 邵阳县| 云安县| 淮滨县| 平原县| 乐昌市| 南漳县| 舟山市| 搜索| 南宫市| 元朗区| 衡阳县| 太仓市| 库尔勒市| 嘉峪关市| 郁南县| 阿鲁科尔沁旗| 吉安市| 敦煌市| 化州市|