【发布时间】:2016-12-26 15:20:16
【问题描述】:
我试图弄清楚如何从给定的文件夹路径创建新的 zip 文件,并将其发送回发件人。
需要的是文件将在请求它的发件人处下载。 我看过很多答案,但没有一个能帮助我找到确切的答案。
我的代码:
Guid 文件夹Guid = Guid.NewGuid(); string folderToZip = ConfigurationManager.AppSettings["folderToZip"] + folderGuid.ToString();
Directory.CreateDirectory(folderToZip);
string directoryPath = ConfigurationManager.AppSettings["DirectoryPath"]; string combinePath = Path.Combine(directoryPath, id);
DirectoryInfo di = new DirectoryInfo(combinedPath); 如果 (di.Exists) { //提供要创建的zip文件的路径和名称 string zipFile = folderToZip + "\" + folderGuid + ".zip";
//call the ZipFile.CreateFromDirectory() method
ZipFile.CreateFromDirectory(combinedPath, zipFile, CompressionLevel.Fastest, true);
var result = new HttpResponseMessage(HttpStatusCode.OK);
using (ZipArchive zip = ZipFile.Open(zipFile, ZipArchiveMode.Read))
{
zip.CreateEntryFromFile(folderFiles, "file.zip");
}
var stream = new FileStream(zipFile, FileMode.Open);
result.Content = new StreamContent(stream);
result.Content.Headers.ContentType = new MediaTypeHeaderValue("application/octet-stream");
result.Content.Headers.ContentDisposition = new ContentDispositionHeaderValue("attachment")
{
FileName = "file.zip"
};
log.Debug("END ExportFiles()");
return ResponseMessage(result);
【问题讨论】:
-
那么您的问题是关于如何创建 zip 文件或如何发送它?
-
如何发送。
-
如果你要发送一个 zip 文件,可能你需要一个 POST 命令而不是 GET,因为 GET 的请求大小是有限的。
-
标签: c# zipfile ziparchive