私のプログラムでは、ユーザーは一度に 1 つのアップロードで zip ファイルにファイルを追加できます。最初のアップロードで zip ファイルが作成され、その後のアップロードで作成されたファイルに追加されます。また、zip ファイル内のすべてのファイルのリストが表示され、ユーザーは個々のファイルを削除できます。
私は SharpZipLib を使用しており、これはローカル コンピューターで完全に動作しますが、サーバーにアップロードすると、CommitUpdate() でクラッシュし始めました。
zip ファイルを作成する元のアップロードは問題ありませんが、zip ファイルに追加または削除すると、次のようになります。
ファイル 'W:\MyZipFile.zip.151.tmp' が見つかりませんでした。
ウィンドウをしばらくそのままにしておくと、エラーが再発する前に、1 つのファイルを削除または 1 つのファイルを追加できます。
私のファイル追加方法:
ZipFile z = null;
if (System.IO.File.Exists(filePath + zipFilename))
z = new ZipFile(File.OpenRead(filePath + zipFilename));
else
z = ZipFile.Create(filePath + zipFilename);
z.BeginUpdate();
z.Add(filePath + filename, filename);
z.CommitUpdate();
z.Close();