C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[4]: 複数選択可のオープンダイアログでひとつだけしか得られず


(過去ログ 41 を表示中)

[トピック内 5 記事 (1 - 5 表示)]  << 0 >>

■21534 / inTopicNo.1)  複数選択可のオープンダイアログでひとつだけしか得られず
  
□投稿者/ kaoru (17回)-(2008/07/03(Thu) 20:02:18)

分類:[C#] 

いつもお世話になります。複数選択可のオープンダイアログでファイルのリストを得ようとしていますが、なぜかひとつだけしか得られずにいます。ご教示いただければと思います。

//ログファイルのパス
private string logfilePath = System.Windows.Forms.Application.StartupPath + "\\sendphoto.list";
private void selectPhotoButton_Click_1(object sender, EventArgs e)
{
  openFileDialog1.Multiselect = true;
  openFileDialog1.Filter = "Image Files (*.jpg)|*.jpg";
  openFileDialog1.Title = "Jpegファイルを選択してください";

  if (openFileDialog1.ShowDialog() == DialogResult.OK)
  {
// Multiselect が true の場合はこのように列挙する
foreach (string nFileName in openFileDialog1.FileNames)
{
  //画像ファイル名
  string imgFile = nFileName;

  //読み込む
  System.Drawing.Bitmap bmp = new System.Drawing.Bitmap(imgFile);
  foreach (System.Drawing.Imaging.PropertyItem item in bmp.PropertyItems)

  //Exif情報から撮影時間を取得する
  if (item.Id == 0x9003 && item.Type == 2)
  {
  //文字列に変換する
  string val = System.Text.Encoding.ASCII.GetString(item.Value);
  val = val.Trim(new char[] { '\0' });
  bmp.Dispose();

  //ログファイルへの書き出し用StreamWriterオブジェクトを生成
  System.IO.StreamWriter writer
    = new System.IO.StreamWriter(logfilePath, true, System.Text.Encoding.Default);

  // ディレクトリ名 (最後に'\\'は付かない) ファイル名と拡張子
  writer.WriteLine(Path.GetDirectoryName(nFileName) + "\t" + Path.GetFileName(nFileName) + "\t" + val.Trim());
  //閉じる
  writer.Close();
  //戻り値を返す
  return;
  }
}
  }
}


引用返信 編集キー/
■21535 / inTopicNo.2)  Re[1]: 複数選択可のオープンダイアログでひとつだけしか得られず
□投稿者/ まどか (555回)-(2008/07/03(Thu) 20:12:53)
一つしか得られないのと「一つしか処理しない」のとは違います。
デバッグで1ステップずつ実行してみればあっさり解決と思われます。
引用返信 編集キー/
■21536 / inTopicNo.3)  Re[2]: 複数選択可のオープンダイアログでひとつだけしか得られず
□投稿者/ kaoru (18回)-(2008/07/03(Thu) 20:34:32)
No21535 (まどか さん) に返信
> 一つしか得られないのと「一つしか処理しない」のとは違います。
> デバッグで1ステップずつ実行してみればあっさり解決と思われます。

アドバイスありがとうございます。
さっそくデバッグしてみました。
出力に、
'SelectPhoto.vshost.exe' (マネージ型): 'C:\WINDOWS\assembly\GAC_MSIL\System.Xml\2.0.0.0__b77a5c561934e089\System.Xml.dll' が読み込まれ、シンボルの読み込みがスキップされました。モジュールが最適化されていて、デバッグ オプションの [マイ コードのみ] 設定が有効にされています。
スレッド '<名前がありません>' (0x2cc) はコード 0 (0x0) で終了しました。
と表示されます。これが求めるエラーなんですかね?
ちょっと歯が立たないです。…。

いや。ほかにないかと気力を振り絞って「スレッド '<名前がありません>'」で検索してみました。
すると、これは正常にスレッドが終了したときのメッセージとのこと。とすると、エラーとは関係ないのかな。だいたいスレッドなんて作っていたのか…。
とするとこれはエラーでないとすると、シンボルの読み込みなのかな。
…。苦戦中。

引用返信 編集キー/
■21537 / inTopicNo.4)  Re[3]: 複数選択可のオープンダイアログでひとつだけしか得られず
□投稿者/ 小春 (56回)-(2008/07/03(Thu) 20:37:16)
No21536 (kaoru さん) に返信
> ■No21535 (まどか さん) に返信
>>一つしか得られないのと「一つしか処理しない」のとは違います。
>>デバッグで1ステップずつ実行してみればあっさり解決と思われます。
>
> アドバイスありがとうございます。
> さっそくデバッグしてみました。
> 出力に、
> 'SelectPhoto.vshost.exe' (マネージ型): 'C:\WINDOWS\assembly\GAC_MSIL\System.Xml\2.0.0.0__b77a5c561934e089\System.Xml.dll' が読み込まれ、シンボルの読み込みがスキップされました。モジュールが最適化されていて、デバッグ オプションの [マイ コードのみ] 設定が有効にされています。
> スレッド '<名前がありません>' (0x2cc) はコード 0 (0x0) で終了しました。
> と表示されます。これが求めるエラーなんですかね?
> ちょっと歯が立たないです。…。
>
> いや。ほかにないかと気力を振り絞って「スレッド '<名前がありません>'」で検索してみました。
> すると、これは正常にスレッドが終了したときのメッセージとのこと。とすると、エラーとは関係ないのかな。だいたいスレッドなんて作っていたのか…。
> とするとこれはエラーでないとすると、シンボルの読み込みなのかな。
> …。苦戦中。
>

return;とすると、処理が終わっちゃいます。
引用返信 編集キー/
■21538 / inTopicNo.5)  Re[4]: 複数選択可のオープンダイアログでひとつだけしか得られず
□投稿者/ kaoru (19回)-(2008/07/03(Thu) 20:42:26)
No21537 (小春 さん) に返信
>>■No21535 (まどか さん) に返信

> return;とすると、処理が終わっちゃいます。

できました。ありがとうございます。
解決済み
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -