1
私は自動更新システムを作りました。私はzipファイルをダウンロードした後、もちろん解凍したいと思います。私が単純なアンパックを使用している場合、その作業。C#.net4.5解凍Zipファイル
//System.IO.Compression.ZipFile.ExtractToDirectory(zipPath、extractPath);
しかし、ファイルを上書きしたいときは、アプリケーションクラッシュよりもずっと時間がかかります。 "mscorlib.dllで 'System.IO.IOException'タイプの例外が発生しましたが、ユーザコード" "で処理されませんでした。ファイル名、フォルダ名またはラベル構文が正しくありません。
string zipPath = @""+ System.IO.Directory.GetCurrentDirectory() + "/Temp/"+"1.zip";
string extractPath = @""+ System.IO.Directory.GetCurrentDirectory();
using (ZipArchive archive = ZipFile.OpenRead(zipPath))
{
foreach (ZipArchiveEntry entry in archive.Entries)
{
entry.ExtractToFile(Path.Combine(extractPath, entry.FullName),true);
}
}
私は問題を解決できません。私は何か悪いを使用していますか?
パス構文が無効であるようです。 'entry.ExtractToFile(Path.Combine(extractPath、entry.FullName)、true);'この行でクラッシュしますか? – NtFreX
うわー、デバッグはここでエラーメッセージで停止します。しかし、私が書いたように、私はSystem.IO.Compression.ZipFile.ExtractToDirectory(zipPath、extractPath)を使用しています。それを解凍しますが、知っているとおり、ファイルを上書きすることはできません。 :) – WinDev
は 'extractPath'と組み合わせて' entry.FullName'を無効なパスにする可能性が最も高いです。それをデバッグして、Path.Combine(extractPath、entry.FullName)の結果を分析してみてください。 – NtFreX