1

私のプログラムでは、ユーザーは一度に 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();
4

2 に答える 2

1

私はそれを考え出した。zip ファイル内のファイルのリストを表示した後、ZipFile を閉じるのを忘れていました。これにより、zip がロックされ、タイムアウトするまで編集できなくなりました。

于 2009-03-16T12:50:22.983 に答える
0

アプリケーションを実行しているユーザーが、ファイルパスで指定されたフォルダー内のファイルを作成および変更するための NTFS アクセス許可を持っていることを確認する必要があります。

于 2009-03-13T19:11:06.420 に答える