我正在尝试使用ZipFiles()
实用程序方法,并生成一个空的zip文件。我正在使用Sitecore 6.5。没有错误,权限或其他。
有什么想法?这是代码。
public void CreateZipFile(string zipfileName, List<string> files)
{
var zipfile = string.Format("{0}/{1}/{2}", TempFolder.Folder, "myfolder", zipfileName) ;
var fileArray = files.ToArray();
var x = FileUtil.ZipFiles(zipfile, fileArray);
}
编辑: 我正在传递像这样的文件
var files = new List<string> { FileUtil.MapPath("/temp/sample.xlf") };
答案 0 :(得分:3)
FileUtil.ZipFiles
方法的正确用法是:
FileUtil.ZipFiles("/test.zip", new []{"/web.config", "/otherfile.txt"})
Sitecore自动映射路径。该zip文件将在您的Web应用程序根目录中创建。
评论后编辑
如果您想在Web根目录外创建一个zip文件并且内部有一个平面结构,您可以使用Sitecore ZipWriter
类,如下所示:
public static string ZipFiles(string absolutePathToZipfile, string[] files)
{
using (ZipWriter zipWriter = new ZipWriter(absolutePathToZipfile))
{
foreach (string path in files)
{
using (FileStream fileStream = System.IO.File.OpenRead(path.StartsWith("/") ? FileUtil.MapPath(path) : path))
zipWriter.AddEntry(FileUtil.GetFileName(path), fileStream);
}
}
return absolutePathToZipfile;
}