ReadDirectoryChangesWで全てのドライブを監視するには – 固定ページ 2 – プログラミング – Home

通知
すべてクリア

[解決済] ReadDirectoryChangesWで全てのドライブを監視するには

固定ページ 2 / 2

ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

また追記です。
  長期 = 1日(8時間以上)のことです。
#1・2時間程度ならいいと思います。


返信引用
porin
 porin
(@porin)
ゲスト
結合: 19年前
投稿: 10
 

何をやりたいのかよく分かりませんが
「デスクトップ」はあくまでC:\Documents and Settings\ユーザ名配下にある
ディレクトリに過ぎません。

また「マイ コンピュータ」も仮想フォルダに過ぎず
ファイルシステムディレクトリも割り当てられていないため対象にすることはできません。

すべてのドライブを監査対象にするのであれば
GetLogicalDriveStrings 等を使って全部のドライブを列挙するしかないかと。

※リムーバブルディスク等を含めるのであれば相当面倒なことになるはず……

# どうでもいいけど CodeProject のサンプルプログラムを使用すると
# セキュリティポリシーでオブジェクト アクセスの監査を設定したときと同じような
# 感じになるな……
# 手元の PC(Windows 2000) だとフォルダの自動更新が行われなくなるorz


返信引用
シュウ
 シュウ
(@シュウ)
ゲスト
結合: 22年前
投稿: 43
Topic starter  

レスありがとうございます。

>  USB利用したドライブ(メモリー等も含む)のように取り外し自由なドライブには
> どう対応しますか?

はい。それも質問しているつもりです。

>  監視がスムーズでなくなりますが、周期的に繋がっているドライブを調べながら
> 順次監視していくのがいいと思います。

リムーバルディスクが抜き差しされたときの通知は別のAPIにて得ることができます。

ただ、にさんにアドバイスをいただいたように、
ReadDirectoryChangesWを使って
リムーバブルディスクを監視していると安全な取り外しができません。

また、普通のディレクトリなどを監視の対象にすると、
削除することもできなくなってしまいます。

ということで、ReadDirectoryChangesWは
削除不可能なディレクトリのみにしか使わないようにしようと思います。
基本的には、固定ドライブ(C:\)のみにします。

長期の監視などでアドバイスをいただきましたが、
ReadDirectoryChangesWを使っているシステムが、すべてシステム負荷などを考えて
実装しているとは思えませんので、
普通に使ってみて問題があるようであれば調整したいと思います。

FileMonもつかって見ましたが、
私が監視したいのはフォルダの変更(作成/削除)のみで、
多少取りこぼしがあったとしても、
リカバリできる仕組みも用意しますので、
あそこまで高性能な作りは必要ではありません。

ありがとうございました。


返信引用
porin
 porin
(@porin)
ゲスト
結合: 19年前
投稿: 10
 

# 突っ込もうと思って突っ込むの忘れてた

> Using Hardware AutoPlay
> http://msdn2.microsoft.com/En-US/library/aa969332.aspx

斜め読みしただけだけど
これって Windows XP における AutoPlay の実装方法についての話のような……


返信引用
シュウ
 シュウ
(@シュウ)
ゲスト
結合: 22年前
投稿: 43
Topic starter  

porinさんレスありがとうございます。

行き違いでした。。

> GetLogicalDriveStrings 等を使って全部のドライブを列挙するしかないかと。

GetLogicalDriveStringsは初めて知りました。
今はGetLogicalDrives()で取得しています。

GetDriveType()でDRIVE_FIXEDのときだけ
ReadDirectoryChangesWを使った監視にしようと思います。

> ※リムーバブルディスク等を含めるのであれば相当面倒なことになるはず……

そうですね。
でもおかげさまで方向性が見つかったので乗り越えられそうです。

> # 手元の PC(Windows 2000) だとフォルダの自動更新が行われなくなるorz

貴重な情報ありがとうございます。
Win2000で試してみます。


返信引用
ITO
 ITO
(@ITO)
ゲスト
結合: 22年前
投稿: 1235
 

># どうでもいいけど CodeProject のサンプルプログラムを使用すると
なるほどそんなことがあるのですか。
気をつけないといけないですね。


返信引用
固定ページ 2 / 2

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました