ファイルの書出し完了を検知するには?


WAT  2007-06-25 23:41:48  No: 65482

フロッピーやMO、リムーバブルディスクへの書出し完了を検知してツールを呼び出すような処理を考えていますが、書出し完了を検知できるものなのでしょうか?なにか手段がわかれば教えてください。エクスプローラでよくプログレスバー表示されているということは、なにかAPIが利用できるのでしょうか?
VC++6.0、MFCです。


とおりすがり  2007-06-26 01:42:15  No: 65483

書き出し完了は検知できません
エクスプローラのコピー中のプログレスバーも実際にディスクに書かれたサイズを示しているわけではありません。
バーが最後まで言って消えた後も遅延書き込みによってディスクアクセスされています。


n  2007-06-27 06:34:08  No: 65484

FindFirstChangeNotification() かな?


オショウ  2007-06-28 18:42:03  No: 65485

VC++でやったことはありませんが、最近の情報で言うと
.NETのSystem.IO.FileSystemWatcherクラスで行うことに
なろうかと・・・
ただし、該当デバイス全てに対して行うということができ
ません。ワイルドカードを使ってもフォルダ単位が最大で
す。

簡単に・・・ではありませんが、デバイスに対しての書き
込み完了を取るのであれば、デバイスドライバでもフィル
タードライバーというものを作って、ファイルデバイスに
対して割り込ませ、監視させると言う方法があります。

今、手元に書籍が無いので、どこの何だったか書けません
が、デバドラ関係の書籍でフィルタードライバーの書き方
を記載したものがありました。それには、リムーバルメデ
ィアへの読み書きで、暗号化・復号化を行うフィルタード
ライバの記載がありました。
そのソースを変更することで、欲しい機能は実現できるは
ずです。

メーカー・書籍名が解りませんので・・・申し訳ない・・・
参考と言うことで。

以上。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加