私はPDAアプリを作成していて、たくさんの小さなファイルをアップロード/ダウンロードする必要があります。私の考えは、それらを非圧縮のzipファイルに集めることです。
問題は、これらのファイルを分離せずにzipから読み取ることをお勧めします。どうすればいいですか?それとも、それらを解凍する方が良いですか?ファイルは圧縮されていないので、zipから読み取るという単純な考え方は、ファイルシステムから直接読み取るのとほぼ同じくらい効率的です...
お時間をいただきありがとうございます!
私はPDAアプリを作成していて、たくさんの小さなファイルをアップロード/ダウンロードする必要があります。私の考えは、それらを非圧縮のzipファイルに集めることです。
問題は、これらのファイルを分離せずにzipから読み取ることをお勧めします。どうすればいいですか?それとも、それらを解凍する方が良いですか?ファイルは圧縮されていないので、zipから読み取るという単純な考え方は、ファイルシステムから直接読み取るのとほぼ同じくらい効率的です...
お時間をいただきありがとうございます!
Since there are two different Open-source libraries (SharpZipLib and DotNetZip Library) to handle writing & extracting files from a zip file, why worry about doing it yourself?
ewww-J#は使用しないでください。
DotNetZipライブラリは、v1.7以降、.NET CompactFramework2.0以降で実行されます。ZIPアーカイブ内の圧縮ファイルまたは非圧縮ファイルの読み取りまたは書き込みを処理できます。ソースディストリビューションには、CFサンプルアプリが含まれています。とても簡単です。
アーカイブを使用してファイルをグループ化するように聞こえます。
ファイルを読み取るという観点からは、ファイルがいずれかの方法で処理されてもほとんど違いはありません。ただし、zipファイルを読み取る機能を実装する必要があります。James Curranが提案したようなライブラリを使用する場合でも、それは追加の作業を意味し、エラーの追加の原因を意味する可能性があります。
ファイルのアップロードの観点からは、より理にかなっています。アップローダーは必要なすべてのファイルを収集でき、1回のアップロードのみを処理する必要があります。これにより、オーバーヘッドとエラー処理が削減されます(1つのアップロードが失敗した場合、すでにアップロードされているこのグループのすべてのファイルを削除する必要がありますか?)。
アーカイブから読み取る場合とディスクから直接読み取る場合の効率については、違いは最小限である必要があります。あなた(またはあなたのzipライブラリ)は、zipディレクトリ構造を一度解析する必要があります。これは非常に簡単です。残りは、ファイルの一部をメモリに読み込むことと、ファイルをメモリに読み込むことです。