0

C#でionic.zipでロック解除したzip内のファイルを使ってみた

私はそれを使って

 string zipToUnpack = filename;
 ExtractFileToDirectory(filename,appPath);

最初は問題なく動作しますが、2 回目の試行では、ファイルが別のユーザーによって使用されているという IO 例外が発生します。現在のプロセスからこのファイルのロックを解除するにはどうすればよいですか?

4

1 に答える 1

4

Ionic.Zip のリファレンス ドキュメントExtractFileToDirectoryで見つけられないようです。別の StackOverflow の質問「DotNetZip ライブラリによってプログラムで ZIP ファイルを抽出しますか?」で同じ名前の関数を見つけました。. それが使用している実装である場合は、おそらく を呼び出して、基になるファイル ストリームを閉じる必要があります。DisposeZipFile

public void ExtractFileToDirectory(string zipFileName, string outputDirectory)
{
     using (ZipFile zip = ZipFile.Read(zipFileName))
     {
         Directory.CreateDirectory(outputDirectory);
         zip.ExtractAll(outputDirectory,ExtractExistingFileAction.OverwriteSilently);
     }
}

そうでない場合は、ファイルの抽出方法に関する詳細を共有してください。

于 2013-05-22T07:21:04.650 に答える