0

.NET ライブラリ (圧縮) を使用しているこの解凍機能がありますが、問題はファイル名に Unicode の問題があることです。たとえば、"µ" が "æ" に変換されています。

他の解凍ライブラリを使用せずにこの問題を解決する方法はありますか?

 using System.IO.Compression;

 private void Unzip()
    {
        try
        {
            string appPath = Path.GetDirectoryName(Application.ExecutablePath);

            // unzip update
            using (ZipArchive archive = System.IO.Compression.ZipFile.OpenRead(ZipFile))
            {

                foreach (ZipArchiveEntry entry in archive.Entries)
                {
                    string fullPath = Path.Combine(appPath, entry.FullName);
                    if (String.IsNullOrEmpty(entry.Name))
                    {
                        Directory.CreateDirectory(fullPath);
                    }
                    else
                    {
                        if (!entry.Name.Equals("Updater.exe"))
                        {
                            entry.ExtractToFile(fullPath,true);

                        }
                    }
                }

                //  UpdateProgress(((float)s.Position / (float)fileStream.Length) * 100F);
                //System.Threading.Thread.Sleep(extraWaitMilliseconds); //don't go too fast

            }
            UnzipFinished();  //*********^

        }            
        catch (Exception ex)
        {
        UnzipFailed(ex);
        }
    }
4

1 に答える 1

0

ライセンスに関する制限を読みましたが、codeproject に関するこの記事が役立つと思います。

ドット ネット ラッパーで Windows の内部 ZIP を使用する方法を説明しています。このリンクのディスカッション スレッドは、ファイル名やディレクトリ名の特殊文字の扱いに役立ちました。

Link "C# Use Zip Archives without External Libraries"タイトルを Google 検索項目として使用すると、記事が最上位に表示されます。基本的に、MS.Internal.IO.Zip のラッパーです。

于 2013-11-14T13:28:41.740 に答える