離れた場所に約300kの画像ファイルがあります。私はこれらのファイルの詳細をダウンロードして(しなければなりません)、テキストファイルに書き込みます(いくつかの追加情報を含む)。取得する情報の性質上、到着時に各ファイルを処理する必要があります(また、各ファイル情報をファイル行に書き込みます)。たとえば、属性を持つオブジェクトのリストがあります。サイズとカウントを使用して、特定のサイズの画像がいくつあるかを確認します。
また、統計情報を保持せずにすべてをファイルに読み書きして、ファイルをもう一度開いて統計を追加できるようにすることも考えました。しかし、統計情報のために250k行のマルチ属性ファイルを処理する方法を考えることはできません。
私はリストを知っています(ええ、私はそれらを2つ持っています)、そして各アイテムの一定のループがアプリケーションを悩ませていますが、別の方法はありますか?現在、2時間経過していますが、アプリケーションはまだ26kです。画像アイテムごとに、このようなことを行って、画像が以前の特定のサイズであるかどうかを確認し、そのリストアイテムに追加します。
public void AddSizeTokens(Token token)
{
int index = tokenList.FindIndex(item => item.size== token.size);
if (index >= 0)
tokenList[index].count+=1;
else
tokenList.Add(token);
}
私が書いたファイルからの1行はどのように見えるか
Hits Size Downloads Local Loc Virtual ID
204 88.3 4212 .../someImage.jpg f-dd-edb2-4a64-b42
以下のようなファイルをダウンロードしています。
try
{
using (WebClient client = new WebClient())
{
if (File.Exists(filePath + "/" + fileName + "." + ext))
{
return "File Exists: " + filePath + "/" + fileName + "." + ext;
}
client.DownloadFile(virtualPath, filePath + "/" + fileName + "." + ext);
return "Downloaded: " + filePath + "/" + fileName + "." + ext;
}
}
catch (Exception e) {
return"Problem Downloading " + fileName + ": " + e.Message;
}