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

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

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

Re[3]: ファイルの種類を取得する方法


(過去ログ 33 を表示中)

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

■16041 / inTopicNo.1)  ファイルの種類を取得する方法
  
□投稿者/ toruka (1回)-(2008/03/27(Thu) 14:26:49)

分類:[VB.NET/VB2005] 

いつも参考にさせていただいております。

FileSystemWatcherを使った、監視プログラムを作っています。
この場合1回の更新処理で、変更イベントが複数回発生します。
(調査したのですが、今のところ有効な回避策はありませんでした、、)

実際に必要なのは、
@更新が始まったタイミング
A更新が終了したタイミング
以上の2つだけです。

そこで、変更イベントが発生したタイミングでタイマーを起動し、
変更対象のファイルに対しオープン処理を定期的に実行します。
ファイルパスは「e.FullPath」で取得します。※e → EventArgs

オープンが失敗したら、まだ更新処理中
オープンが成功したら、更新処理終了

と判断することにしました。


通常のファイルであれば、(今のところ)この方法で問題はありませんでした。

しかし、新規にフォルダを作成した場合、例外となります。
「フォルダ」に対してオープンしようとしているのですから当然なのですが、、

これを回避するため、対象ファイルが「フォルダ」なのか、それ以外のものであるのかを判別するため、
「ファイルの種類」を取得したいと考えています。

Web等で検索してみたのですが、方法が分かりません。
また、拡張子を見ることも考えたのですが、拡張子が無い=フォルダ とも限りませんよね。


自分でも調査を進めますが、どなたかご存知の方がいましたら、ご教授願います。
宜しくお願いします。


■開発環境:WindowsXP
■言語:VB.NET 2003



引用返信 編集キー/
■16042 / inTopicNo.2)  Re[1]: ファイルの種類を取得する方法
□投稿者/ アゲハチョウ (9回)-(2008/03/27(Thu) 14:30:41)
No16041 (toruka さん) に返信
> いつも参考にさせていただいております。
>
> FileSystemWatcherを使った、監視プログラムを作っています。
> この場合1回の更新処理で、変更イベントが複数回発生します。
> (調査したのですが、今のところ有効な回避策はありませんでした、、)
>
> 実際に必要なのは、
> @更新が始まったタイミング
> A更新が終了したタイミング
> 以上の2つだけです。
>
> そこで、変更イベントが発生したタイミングでタイマーを起動し、
> 変更対象のファイルに対しオープン処理を定期的に実行します。
> ファイルパスは「e.FullPath」で取得します。※e → EventArgs
>
> オープンが失敗したら、まだ更新処理中
> オープンが成功したら、更新処理終了
>
> と判断することにしました。
>
>
> 通常のファイルであれば、(今のところ)この方法で問題はありませんでした。
>
> しかし、新規にフォルダを作成した場合、例外となります。
> 「フォルダ」に対してオープンしようとしているのですから当然なのですが、、
>
> これを回避するため、対象ファイルが「フォルダ」なのか、それ以外のものであるのかを判別するため、
> 「ファイルの種類」を取得したいと考えています。
>
> Web等で検索してみたのですが、方法が分かりません。
> また、拡張子を見ることも考えたのですが、拡張子が無い=フォルダ とも限りませんよね。
>
>
> 自分でも調査を進めますが、どなたかご存知の方がいましたら、ご教授願います。
> 宜しくお願いします。
>
それはファイルの属性を知りたいのですか?
>
> ■開発環境:WindowsXP
> ■言語:VB.NET 2003
>
>
>
引用返信 編集キー/
■16044 / inTopicNo.3)  Re[1]: ファイルの種類を取得する方法
□投稿者/ シャノン (342回)-(2008/03/27(Thu) 14:40:55)
No16041 (toruka さん) に返信
> これを回避するため、対象ファイルが「フォルダ」なのか、それ以外のものであるのかを判別するため、
> 「ファイルの種類」を取得したいと考えています。

ファイルの種類と言うよりも、ファイルなのかフォルダなのか、ですよね。
File.GetAttributes の戻り値に FileAttributes.Directory が含まれるかどうか、というのがスマートでしょうか。
他にもいろいろ方法は考えられますが。
引用返信 編集キー/
■16045 / inTopicNo.4)  Re[2]: ファイルの種類を取得する方法
□投稿者/ りお (26回)-(2008/03/27(Thu) 14:46:19)
http://jeanne.wankuma.com/tips/directory/exists.html

フォルダかどうかを判断すれば良いのでないでしょうか。
引用返信 編集キー/
■16047 / inTopicNo.5)  Re[2]: ファイルの種類を取得する方法
□投稿者/ toruka (2回)-(2008/03/27(Thu) 14:47:49)
アゲハチョウさん:

さっそく返信してくださり、ありがとうございます。

ファイルの属性で調べてみたところ、
GetAttributes と FileAttributes.Directory
で判別できることが分かりました!!

大変助かりました!ありがとうございました〜
解決済み
引用返信 編集キー/
■16049 / inTopicNo.6)  Re[3]: ファイルの種類を取得する方法
□投稿者/ toruka (3回)-(2008/03/27(Thu) 14:51:32)
シャノンさん、りおさん:

すみません、入れ違いで返信くださっていたようですね。
みなさん本当にありがとうございます!

こんな簡単なことを聞いてしまって恥ずかしい限りです。。
解決済み
引用返信 編集キー/


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

このトピックに書きこむ

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

管理者用

- Child Tree -