如何使用C#解压缩docx文件?

时间:2013-03-06 06:42:03

标签: c# ms-word

如何使用C#解压缩docx文件?

6 个答案:

答案 0 :(得分:5)

新的Office文件扩展名(docx,potx,xlsx等)在上传到Web服务器然后下载时会变成zip文件。

这些文件格式现在使用Open XML文件格式系统,因此它们与Google,Open Office等其他办公程序更兼容。基本上它们是包含XML文件的zip文件,当使用适当的应用程序打开时,这些文件会变成友好的word文档。

我从here偷了这个充满耻辱的地方,在那里你可以找到完整的信息。

我希望这个答案可以帮助你和所有嘲笑你的无知的人,并在不知道答案的情况下对你的问题进行否定投票。

答案 1 :(得分:4)

如果您指的是docx个文件,它们基本上只是使用特定约定创建的zip个文件。

查看Packaging API。

答案 2 :(得分:1)

以下是您要查找的完整代码。我已经将这个类用于docx zip和unzip操作。

   using System.Collections.Generic;
   using System.IO;
   using System.Linq;
   using Microsoft.Deployment.Compression;
   using Microsoft.Deployment.Compression.Zip;


 namespace <YourPackage>.Libs
 {
 public class ZipFile
 {
    private string _zipfilepath;

    public ZipFile(string zipfilepath)
    {
        _zipfilepath = zipfilepath;
    }

    public void Compress(string filePath,bool deleteSourceFolder)
    {
        var filePaths = new List<string>();

        if (Directory.Exists(filePath))
        {
            filePaths.AddRange(Directory.GetFileSystemEntries(filePath).ToList());
        }

        if (filePaths.Count > 0)
        {
            var zip = new ZipInfo(_zipfilepath);
            zip.Pack(filePath, true, CompressionLevel.None, null);
        }

        if(deleteSourceFolder)
            Directory.Delete(filePath,deleteSourceFolder);
    }

    public void Uncompress(string destinationPath)
    {
        var zip = new ZipInfo(_zipfilepath);
        zip.Unpack(destinationPath);
    }       
}

}

答案 3 :(得分:1)

设置对System.IO.Compression和System.IO.Compression.FileSystem的引用。 然后是这样的事情:

using System.IO.Compression;

string zipPath = @"c:\tmp\Test.docx";
using (ZipArchive archive = ZipFile.OpenRead(zipPath))
{
   archive.ExtractToDirectory(zipPath + ".unzipped");
}

看看这里:https://msdn.microsoft.com/EN-US/library/hh485709(v=VS.110,d=hv.2).aspx(ZipFileExtensions.ExtractToDirectory Method)

答案 4 :(得分:0)

您可以尝试使用System.IO.Packaging.ZipPackage

答案 5 :(得分:0)

安装Open XML SDK http://www.microsoft.com/en-us/download/details.aspx?id=5124并使用它来处理Docx文件中的XML。