2

状況

  • .zip ファイルがあります。この .zip にはフォルダ "dist/" があり、フォルダ "dist/" には次の 2 つがあります。1) 別のフォルダ "lib/" 2) jar ファイル
  • .zip を開き、dist/jar ファイルを抽出します。ディスク「dist」に「新しい」フォルダーが表示され、その中にjarが含まれます
  • ZipArchive で jar ファイルを開き、必要に応じてこれを編集します。編集は addFromString() によって保存されます

ここからが肝心な部分です

  • jar ファイルを .zip に再度追加したい
  • $zip->addFile($newdir . 'dist/' . $corefile, 'dist/' . $corefile) を実行してこれを行います

どこ:

  • $newdir は、ローカル ディスク上の、抽出/編集された jar ファイルを含む「新しい」dist/ フォルダーへの絶対パスです。
  • $corefile は、抽出/使用された jar ファイルのファイル名です
  • 編集したjarファイルをzip内のdist/フォルダーに追加したい

何が起こるのですか

  • jar ファイルが正常に編集されました
  • jar を .zip に追加し直す際にエラーは発生しません。
  • 変更した .zip および .jar を開くと、何も変更されません。

私は何を間違っていますか?

ありがとう!

- 編集:

問題が見つかりました。

編集した jar を .zip に戻した後、 $zip->close() の前に、ローカル ディスク上の jar を完全に削除しました。close() は明らかに機能しなかったため、変更は保存されませんでした。

私たちは何を学びましたか?

close() 削除する前に/...ファイルを!

4

0 に答える 0