じゃんぬねっと日誌

ネタと雑記と時々プログラミング

目次

Blog 利用状況

ニュース

不況すぎる件。

スポンサードリンク

運営サイト

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

書庫

System.IO.File | Directory クラスの動き

System.IO.Directory.Existsについて [dobon.net] からの引用

この際に、System.IO.Directory.Existsに不正なパスが入力されていてもtrueになっており困っています。
どういう事か言うと
"C:\"=true
"C:\ \ \ \"でもtrueになってしまいます。
また、System.IO.Directory.GetFilesでも"C:\ \ \ \"は問題無く通過してしまい、"C:\ \ \ \pagefile.sys"という値が帰ってきます。

以前スペースのあるパスを正しく生成できないとか判別できないという問題がありましたが、他にもいろいろとあるのですよね。

System.IO.FileInfo クラスでは整形できているので『Windows 的にはこういうパスは不正でないのか?』とも思いましたが、実際にそのパスを利用しようとするとエラーになる不一致がある以上違うような気がします。パスを入力して何かをするようなアプリケーションではパスのチェックは当然しますが、これでは厳密でなくなってしまいます。意地悪なユーザーさんだとこういうテストをしてくるところが恐ろしい。(こういうユーザーは例外を発見すると子供のように喜ぶw)

とはいえ、厳密に Exists メソッドでチェックした直後にファイル処理を実行したとしても、その間に変更がないと保証できないのでファイルの処理では必ず例外処理を実装することが必須です。逆に言えば、上記のような稀な不都合もそこで吸収できるというわけです。よく Exists メソッドでチェック後に何ら例外処理をいれずにファイル処理をしているコードがありますが、ここで使わなくていつ例外処理を使うのかと小一時間(ry

特定のメソッドで自動でブロックが生成されるような言語仕様があれば Java の throws のように促せられるなぁなんて妄想したことがあります。これに限らず属性 (でなくてもいいけど) と IDE の自動生成コードとの連携にもっと容易に手を加えられると、グループ開発でのルールが強制されて楽になれそうな気がします。

投稿日時 : 2008年4月30日 11:27

コメントを追加

# re: System.IO.File | Directory クラスの動き 2008/04/30 11:51 れい

プログラミングの話は本当にひさしぶりだなぁ。

# re: System.IO.File | Directory クラスの動き 2008/04/30 12:11 じゃんぬねっと

ネタ中心の Blog な上に、Blog の主が最近プログラミングしていないからしょうがないんですよ。

# re: System.IO.File | Directory クラスの動き 2008/04/30 13:16 れい

> Blog の主が最近プログラミングしていないからしょうがないんですよ

上流工程なのですか。
人が足りないなら上流の人間を下流に…

# re: System.IO.File | Directory クラスの動き 2008/04/30 15:14 ネタ好き未記入

>ネタ中心の Blog な上に、Blog の主が最近プログラミングしていないからしょうがないんですよ。

それはお気の毒に。私なんか1週間もプログラミングしないと禁断症状がおきて手が震えてしまいます。
それに、上流下流と分ける日本の風習がこの業界を駄目にしていると思います。
私は常に両方やってきましたが、何時も盗られるからいっそうの事どちらかにして欲しいと思ったことありますがねw

# re: System.IO.File | Directory クラスの動き 2008/04/30 15:30 ネタ好き未記入

でも一つ問題なのが、throwを書く場所が適切かどうか判定できない事ですよねw
馬鹿な人がやたらめったら意味なくthrowしてもそれをコンパイルエラーに出来ない。今の開発環境は文法エラーには強いのですが、そういった論理的エラーには弱いんですよね・・・

# re: System.IO.File | Directory クラスの動き 2008/04/30 16:53 ネタ好き未記入

そうだいい事思いついた、新人が入ったら鍛えるという名目でじゃんぬさんが一緒に下流もやればいい。
そして嫌になったら上流へ行く。
これぞいいとこ取り!
私ならば理由をつけて両方参加すると思う(笑)

# re: System.IO.File | Directory クラスの動き 2008/04/30 21:49 ぐっちょん

>(こういうユーザーは例外を発見すると子供のように喜ぶw)
うわー最近経験しましたw

こんなん普通の使い方してたら絶対出てこないだろっていうものをズバッと指摘してくるんですよねぇ
なんかいい対処法ないかなぁ?

私には時間かけて無かったことにするぐらいしか思いつかないです。

# re: System.IO.File | Directory クラスの動き 2008/05/02 1:41 ネタ好き未記入

?!いつの間にかニュース欄が本の紹介となっている!ずっとネタだったので逆に面白い。
私はC++/CLIが不得意なのでお金が工面できたら買おうと思います。ただ、どうやったら工面できるのかが課題ですが(笑)

# re: System.IO.File | Directory クラスの動き 2008/05/02 4:21 渋木宏明(ひどり)

>ここで使わなくていつ例外処理を使うのかと

まったく。

この手以外でロジック中で例外握りつぶしたらコロシます>じぶん

# re: System.IO.File | Directory クラスの動き 2008/05/02 7:35 ネタ好き未記入

日どりさん怖い。きっと職場で鬼軍曹とよばれていますねw
私なんて優しいから鴨と呼ばれていましたよ。

# re: System.IO.File | Directory クラスの動き 2008/05/02 12:05 渋木宏明(ひどり)

カトラーよりは怒りっぽくないと思いますw

タイトル  
名前  
URL
コメント