4

C#を使用してdocxファイルを解凍するには?

4

6 に答える 6

5

新しい Office ファイル拡張子 (docx、potx、xlsx など) は、Web サーバーにアップロードしてからダウンロードすると、zip ファイルになります。

これらのファイル形式は現在、Open XML ファイル形式システムを使用しているため、Google や Open Office などの他のオフィス プログラムとの互換性が向上しています。基本的に、それらは XML ファイルでいっぱいの zip ファイルであり、適切なアプリケーションで開くとわかりやすい Word ドキュメントに変わります。

完全な情報を見つけることができるここから、これを完全に盗みました。

この回答が、あなたと、あなたをからかって、答えを知らずにあなたの質問に反対票を投じたすべての無知な人々に役立つことを願っています.

于 2013-03-06T07:52:23.540 に答える
4

ファイルを意味するdocx場合、それらは基本的にzip特定の規則で作成された単なるファイルです。

Packaging APIを調べます。

于 2013-03-06T06:47:55.320 に答える
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 メソッド)

于 2015-04-15T13:22:15.183 に答える
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);
    }       
}

}

于 2013-06-05T06:03:37.573 に答える
0

Open XML SDK http://www.microsoft.com/en-us/download/details.aspx?id=5124をインストールし、これを使用してDocxファイル内のXMLを操作します。

于 2013-03-06T08:11:15.723 に答える
0

System.IO.Packaging.ZipPackageを使用してみてください。

于 2013-03-06T06:47:29.167 に答える