0

私のプログラムは、システムが実行されている時間ごとに情報のログを生成します。これには、アクセス時間、データ転送、発生した障害/警告などのさまざまなデータが含まれます。残念ながら、これらのログ ファイルのサイズは 10,000KB から 25,000KB の範囲になる可能性があるため、少なくとも 24 時間経過したら個別に圧縮し始めました。

私が解決する必要がある問題は、このソフトウェアの一部が「診断」ウィンドウであり、ユーザーがファイルの作成時間に基づいて選択した日付範囲からログ ファイルをロードし、その内容を読みやすい形式で表示できることです。ファイルが検索に表示されるためには、.zip もチェックできるようにする例外が必要であることは理解していますが、ファイルのデータにアクセスして、その .zip ファイルが日付範囲に含まれるかどうかを確認することはできません。

私の質問は、ファイルを解凍したり、検索を行ったり、ファイルを再圧縮したりすることなく、圧縮されたファイルの情報 (さらにはその内容) にアクセスする方法ですか? 1 つまたは 2 つのみが日付範囲に該当する場合、100 以上のファイルを解凍するのは大変な作業のように思えます。

4

2 に答える 2

1

優れた zip ライブラリ (たとえば、 SharpZipLib ) を使用すると、アーカイブに含まれるファイルを抽出せずに繰り返し処理できるはずです。これにより、関連するファイルの日付を照会できます。たとえば、前述の SharpZipLib を使用するとZipEntry、アーカイブに含まれるオブジェクトの DateTime プロパティを調べるだけで済みます。

于 2013-07-01T19:28:03.860 に答える
1

各圧縮ファイルのファイル名にタイムスタンプを追加する必要があります。

一般に、ファイルを圧縮すると、ファイルの実際のデータが読み取り不能な形式になります。ほとんどの圧縮アルゴリズム (非常に多くのアルゴリズムがあることを覚えておいてください) は、非常にビット ハック レベルで動作します。そのため、元のデータを取得するには、ファイルを実際に解凍する必要があります。(無料のランチなんてものはありません。)

幸いなことに、ファイルは単なるファイルではありません。あなたが完全に正しいので、何かをするためにファイルを読まなければならないのはひどいことです! ディレクトリ内の場所を把握するために各ファイルを読み取る必要がある場合、ファイル システムを検索しなければならないことを想像してみてください。

ファイルに関連付けられたメタデータにアクセスするには、使用しているシステムに応じてさまざまな方法があります。たとえば、Unix スタイルのマシンでコマンドls -lを使用すると、最後に編集された情報が取得されます。

とは言っても、ログ ファイルには通常、この正確な理由からタイムスタンプで始まる名前が付いています。ただし、ファイル名をきれいに保ちたい場合は、最終編集日を確認することをお勧めします。

于 2013-07-01T19:23:24.563 に答える