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

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

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

Re[1]: パス文字列の検証について


(過去ログ 59 を表示中)

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

■33564 / inTopicNo.1)  パス文字列の検証について
  
□投稿者/ みりあ (1回)-(2009/03/04(Wed) 16:02:28)

分類:[.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などで確認する方法はありますか?

ご存知の方がいらっしゃいましたらご教授いただけますでしょうか。
どうぞ宜しくお願いいたします。

引用返信 編集キー/
■33566 / inTopicNo.2)  Re[1]: パス文字列の検証について
□投稿者/ aetos (110回)-(2009/03/04(Wed) 16:09:24)
aetos さんの Web サイト
No33564 (みりあ さん) に返信

回答じゃありませんけど、このへん読んでみると面白いかも。
http://www.ipa.go.jp/security/awareness/vendor/programming/b08_01.html
引用返信 編集キー/
■33568 / inTopicNo.3)  Re[1]: パス文字列の検証について
□投稿者/ .SHO (707回)-(2009/03/04(Wed) 16:27:55)
No33564 (みりあ さん) に返信

回答じゃありませんけど、なぜ例外が発生してはダメなんでしょう?
FileInfoクラスで、例外捕まえた方が簡単だと思いますが。
引用返信 編集キー/
■33570 / inTopicNo.4)  Re[2]: パス文字列の検証について
□投稿者/ みりあ (2回)-(2009/03/04(Wed) 17:08:07)
2009/03/04(Wed) 17:20:31 編集(投稿者)

No33566 (aetos さん) に返信
>
> 回答じゃありませんけど、このへん読んでみると面白いかも。
> http://www.ipa.go.jp/security/awareness/vendor/programming/b08_01.html

ありがとうございます。参考にさせていただきます。


No33568 (.SHO さん) に返信
>
> 回答じゃありませんけど、なぜ例外が発生してはダメなんでしょう?
> FileInfoクラスで、例外捕まえた方が簡単だと思いますが。

例外処理は比較的重い部類の処理なので、事前に判別できればと思った次第です。
現在汎用ライブラリを作ってまして、
→ ひとつのメソッドの処理をできるだけ軽く仕上げなくてはいけない
→ Windowsのパスなんだから、判別メソッドがあってもいいのに
→ もしかして探し方が悪いのか
と思い、皆様のお知恵を拝借できればと思い質問させて頂きました。

FileInfoクラスで、例外を捕まえるという方法が一番安全確実であれば、
例外を発生させる方向で考えたいと思っております。

が、もしこんな方法があるなどなどございましたらご教授ください。
宜しくお願い致します。
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -