|
分類:[.NET 全般]
2009/03/04(Wed) 16:07:44 編集(投稿者) 2009/03/04(Wed) 16:05:51 編集(投稿者) 2009/03/04(Wed) 16:05:46 編集(投稿者)
開発環境:VS2008 言語:C#3.0 .NetFramework3.5
■実現したいこと ある変数(文字列型)に格納されている文字列がパスとして有効かどうか例外を発生させないで判別したい。 (ここでパスとはドライブ・フォルダ・ファイルを指す文字列として有効な文字列「C:\folder\」「C:\」「C:\folder\file.txt」などを指します)
無効なパスとしてはじきたい文字列例:「C:\\\folder\」「C:\folder\file////.txt」など
■調べてみたこと System.IO.Path.GetInvalidPathCharsメソッドやGetInvalidFileNameCharsメソッドで 使用できない文字を取得して検証しようとしましたが、MSDNに 「ファイル名やディレクトリ名としては無効なすべての文字が含まれるかどうかは、保証されません。」 と記述があり断念。 FileInfoクラス(DirectoryInfoクラスも)は例外が発生してしまうので断念。
正規表現を使用することも考えましたがパスとして無効な文字が特定できないので断念。
■質問したいこと 1.(保証された)パスとして無効な文字を取得する方法。 2..NetFrameworkで有効な確認方法はありますか? 3.1,2で不可能な場合、APIなどで確認する方法はありますか?
ご存知の方がいらっしゃいましたらご教授いただけますでしょうか。 どうぞ宜しくお願いいたします。
|