Sitecore FileUtil.ZipFiles创建空的zip文件

时间:2014-09-09 14:25:02

标签: sitecore sitecore6

我正在尝试使用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") };

1 个答案:

答案 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;
}