問題を引き起こしているコードが少しあります。
画像のリストをzipファイルにバンドルしようとしています。私が抱えている問題は、アクセス時に画像の1つが開かれ、例外が発生する場合があることです。
タイミングの問題だと確信しているので、「セカンドチャンス」ループをコーディングして、通過する画像をキャッチします(エラーが発生すると停止し、これまでの動作を返す既存の動作とは対照的です) 。
以下に示すように、tryブロックにエラーの可能性のあるコードセクションがあります
if (!Directory.Exists(physicalPath + "/" + fi.Description))
{
Directory.CreateDirectory(physicalPath + "/" + fi.Description);
}
wc.DownloadFile(source, physicalPath + "/" + fileName);
ze = zip.AddFile(physicalPath + "/" + fileName, path);
ze.FileName = fileName;
「ze」はIonic.Zipライブラリの「ZipEntry」であり、「wc」はWebClientです。
私のキャッチでは、2つの情報を保存する必要があります。「source」と「physicalPath + "/"+filename」の結果の文字列です。
.NET 4には、このデータを保持するための新しいオブジェクトを動的に作成する方法があることは知っていますが、それが何と呼ばれているかは思い出せません。これは私のgoogle-fuを大いに妨げました。
まったく新しいクラスを作成せずに、文字列のペア(できれば変数にプロパティ名を含む)を保持する動的オブジェクトを作成するにはどうすればよいですか?