人気ブログランキング | 話題のタグを見る
(.Net)素の.Net Framework 2.0 で OpenFileDialog.SafeFileNameプロパティは使えない
System.Windows.Forms.OpenFileDialog クラスに SafeFileName というプロパティがあります。
このプロパティどうやら素の .Net Framework 2.0 では実装されていないみたいです。
このプロパティをSP無しの .Net 2.0 で使うと下記のような実行時エラーが発生します。

メソッドが見つかりません: 'System.String System.Windows.Forms.OpenFileDialog.get_SafeFileName()'


ここ見ると、.Net 2.0 の SP1 をあてると問題なく使えるようですね。

確かに2.0用のMSDN:OpenFileDialog メンバを見ると、SafeFileName プロパティは存在しません。
自身の開発PCには.Net 3.5 が入ってますが、Visual Studio 自体のプロジェクトは 2.0 で作っていたので問題に全然気づきませんでした。

ちゃんとMSDNのリファレンスに情報のっけるか、もし使わせたくないのならインテリセンスから消すなり、何らかの対策をMSにとってほしいものですね。

ちなみに、この SafeFileName プロパティはファイルダイアログで選んだファイルのパスなしファイル名だけを取得するプロパティなので、.Net2.0でも動くようにこうしました
Dim ofd As New OpenFileDialog()
...省略(ダイアログオープン処理)
Dim strFileName As String = ofd.SafeFileName
 
 修正後 ↓
 
Dim ofd As New OpenFileDialog()
...省略(ダイアログオープン処理)
Dim strFileName As String = IO.Path.GetFileName(ofd.FileName)

by jehoshaphat | 2009-02-02 19:33 | .Net開発


<< (.Net)DataGridV... (ハードウェア)突然PCの電源... >>