ZipFile
public string DownloadMaterial(dynamic data)
{
string url = null;
try
{
MaterialPickData result = JsonConvert.DeserializeObject<MaterialPickData>(JsonConvert.SerializeObject(data));
dynamic idArr = result?.idList;
List<string> dList = JsonConvert.DeserializeObject<List<string>>(JsonConvert.SerializeObject(idArr));
// 压缩文件
//Data文件夹找到文件、移动到DownLoad文件夹的20xx时间戳文件夹下、打包该文件、删除原始文件夹
List<string> fileNameList = new List<string>();
dList?.ForEach(p =>
{
string fileName = Get(p)?.SFile;
if (!string.IsNullOrEmpty(fileName))
{
fileNameList.Add(fileName);
}
});
string filePath = $"{webRootPath}{Path.DirectorySeparatorChar}Data{Path.DirectorySeparatorChar}";
string directoryName = string.Format("{0:yyyyMMddHHmmssfff}", DateTime.Now);
string targetPath = $"{webRootPath}{Path.DirectorySeparatorChar}DownLoad{Path.DirectorySeparatorChar}{directoryName}{Path.DirectorySeparatorChar}";
if (!Directory.Exists(targetPath))
{
Directory.CreateDirectory(targetPath);
}
fileNameList?.ForEach(f =>
{
if (File.Exists($"{filePath}{f}"))
{
File.Copy($"{filePath}{f}", $"{targetPath}{f}");
}
});
//FileCompression.CompressDirectory(targetPath, $"{webRootPath}{Path.DirectorySeparatorChar}DownLoad{Path.DirectorySeparatorChar}{directoryName}.zip", 9, true);
ZipFile.CreateFromDirectory(targetPath, $"{webRootPath}{Path.DirectorySeparatorChar}DownLoad{Path.DirectorySeparatorChar}{directoryName}.zip", CompressionLevel.Fastest, true);
if (Directory.Exists($"{webRootPath}{Path.DirectorySeparatorChar}DownLoad{Path.DirectorySeparatorChar}{directoryName}"))
{
Directory.Delete($"{webRootPath}{Path.DirectorySeparatorChar}DownLoad{Path.DirectorySeparatorChar}{directoryName}", true);
}
url = $"{directoryName}.zip";
}
catch (Exception ex)
{
url = "";
}
return url;
}
网友评论