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

わんくま同盟

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

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


(過去ログ 41 を表示中)
■21475 / )  画像ファイルのパス、ファイル名、撮影時刻をタブ区切りで出力
□投稿者/ kaoru (5回)-(2008/07/03(Thu) 00:06:15)

分類:[C#] 

いつもお世話になります。昨日はありがとうございました。
引き続きWindowsXP Pro SP2でVisual C# 2008 Express Editionを使ってプログラムをしています。
オープンダイアログで指定した画像ファイルのパス、ファイル名、撮影時刻をタブ区切りで出力したいと思っています。
http://dobon.net/vb/dotnet/graphics/getexifinfo.html
などを参考に次のようにしてみました。

//ログファイルのパス
private string logfilePath = System.Windows.Forms.Application.StartupPath + "\\photo.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)
  {
foreach (string nFileName in openFileDialog1.FileNames)
{
  //MessageBox.Show(nFileName);
  //Console.WriteLine(nFileName);

  //ログファイルへの書き出し用StreamWriterオブジェクトを生成
  System.IO.StreamWriter writer
= new System.IO.StreamWriter(logfilePath, true, System.Text.Encoding.Default);
  //画像ファイル名
  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' });
  //DateTimeに変換
  DateTime dt = DateTime.ParseExact(val, "yyyy:MM:dd HH:mm:ss", null);
     }
  }
  bmp.Dispose();

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

  }
  }
}
これでビルドを実行すると、
エラー	1	'System.DateTime' は '型' ですが、'変数' のように使用されています。
とエラーが出ます。
どのように修正したらよいか、アドバイスいただければと。
よろしくお願いします。

返信 編集キー/


管理者用

- Child Tree -