ブリーフィング: 私は、プロジェクトのすべてのファイルへのアクセスを許可する必要があるシステムを開発しています。それは、それらのファイルを開き、アップロードし、変更するためのインターフェイスである必要があります。すべてのファイル (ファイル) をアーカイブに保存することにしました ( zip)、応答時間を向上させるために、すべてのコンテンツを解凍してから再圧縮するのではなく、Java のZip FileSystem Providerを使用して、zip をそのまま変更することにしましたが、多くのトラブルに直面しています。情報の欠如; ユーザーが特定のファイルを必要とする場合、ユーザーが作業できるようにそのファイルを解凍するだけです。ファイルの変更を監視し、変更を検出した場合は、ファイルをアップロード (置換) して zip に入れます。
問題は:
ファイルをアーカイブに保存するときにスレッドを使用しているため (GUI がフリーズするのを防ぐため)、ユーザーは他のファイルを開いて、別のファイルが保存されている場合でもそれらを変更できます。停電の場合に情報が失われないようにアーカイブしますが、FileSystem.commit() や FileSystem.flush() のようなメソッドがないため、ファイル システムを閉じたときにアーカイブに変更が加えられますが、別のファイルが開かれます。システムに時間がかかりすぎて、別のファイルシステムが初期化されている間にシステムの情報が失われるという脆弱性が追加されます...変更をコミットする方法や、常に保存する方法があるという考えはありますか?
2 つのファイルシステムを開く (1 回目は操作を実行するためのバックアップとして、もう一方がインスタンス化されている間に) も機能しません。これは、ファイルの名前が短時間変更されますが、その間に他のインスタンスが作成されて失敗する可能性があるためです。ファイルの名前が見つからないため...
ご挨拶...