■21475 / inTopicNo.1) |
画像ファイルのパス、ファイル名、撮影時刻をタブ区切りで出力 |
□投稿者/ 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' は '型' ですが、'変数' のように使用されています。
とエラーが出ます。
どのように修正したらよいか、アドバイスいただければと。
よろしくお願いします。
|
|