C#でionic.zipでロック解除したzip内のファイルを使ってみた
私はそれを使って
string zipToUnpack = filename;
ExtractFileToDirectory(filename,appPath);
最初は問題なく動作しますが、2 回目の試行では、ファイルが別のユーザーによって使用されているという IO 例外が発生します。現在のプロセスからこのファイルのロックを解除するにはどうすればよいですか?
Ionic.Zip のリファレンス ドキュメントExtractFileToDirectory
で見つけられないようです。別の StackOverflow の質問「DotNetZip ライブラリによってプログラムで ZIP ファイルを抽出しますか?」で同じ名前の関数を見つけました。. それが使用している実装である場合は、おそらく を呼び出して、基になるファイル ストリームを閉じる必要があります。Dispose
ZipFile
public void ExtractFileToDirectory(string zipFileName, string outputDirectory)
{
using (ZipFile zip = ZipFile.Read(zipFileName))
{
Directory.CreateDirectory(outputDirectory);
zip.ExtractAll(outputDirectory,ExtractExistingFileAction.OverwriteSilently);
}
}
そうでない場合は、ファイルの抽出方法に関する詳細を共有してください。