- PR -

ファイル作成可否判定

1
投稿者投稿内容
PiKaPiKa
会議室デビュー日: 2005/09/05
投稿数: 19
投稿日時: 2008-06-05 10:37
こんにちは。

ファイルを出力するプログラムを作っているのですが、
ファイルを出力する前に作成可否が、わかるメソッドなどはないでしょうか?
ユーザーにファイル名を指定してもらい、その後別のアプリにファイル名を渡し作ってもらうという仕様です。
渡す前に一回作ってみて作成できたらOKにしようかと思ったのですが、処理が重くなるため、判定だけできないかと思い質問しました。

よろしくお願いします。
さかもと
ぬし
会議室デビュー日: 2004/05/14
投稿数: 586
投稿日時: 2008-06-05 10:52
さかもとです。

渡す先のアプリが良く分らないのですが、「作成可否」が
1:ファイルの存在チェック?
2:ディレクトリがある?
3:???
など要件があろうかと思います。


それらのチェックロジックを入れてあげるか、try〜Catchで拾うとかでもよいような気がします。



PiKaPiKa
会議室デビュー日: 2005/09/05
投稿数: 19
投稿日時: 2008-06-05 11:47
説明不足ですいません。

ユーザーが入力したファイル名でファイルが作成できるか知りたいのです。
(実際には作成しないで、作成できるかだけを知りたいのです)
ファイルには使用できない文字などがあるので・・・しかし、文字の入力チェックは行わないで処理したい為です。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2008-06-05 11:57
System.IO.Path.GetInvalidPathChars
甕星
ぬし
会議室デビュー日: 2003/03/07
投稿数: 1185
お住まい・勤務地: 湖の見える丘の上
投稿日時: 2008-06-05 11:59
厳密に判断するには、一度作成してみる以外の方法はありません。

それ以外の方法で、作らずに論理的に判定することもできないわけじゃないけど、煩雑になりすぎます。NTFSアクセス権やファイル共有アクセス権、FAT32で使える文字、NTFSで使える文字、etc...の要件を個別にチェックする以外にないでしょうから。

よって正規表現などで簡易判定+実際に作成して判定といった処理にならざる得ないかと思います。
まりも
ベテラン
会議室デビュー日: 2006/08/19
投稿数: 77
投稿日時: 2008-06-05 12:07
説明からすると、ファイル名が防いでないかどうかだけを、文字列の判定のアルゴリズムとか書かずにチェックする方法が知りたい、ということですか?

もしそうだとすると、

new FileInfo(ファイル名)

を実行して、例外が発生しなければ、という判定で大体はいけそうです。
いろいろな条件で確認したわけではありませんが。
1

スキルアップ/キャリアアップ(JOB@IT)