- PR -

ファイル変更を検出する方法

投稿者投稿内容
CHN
ぬし
会議室デビュー日: 2002/03/07
投稿数: 382
投稿日時: 2003-11-10 16:30
みなさん、いつもお世話になっておりますw。

また、質問です。
あるファイルを自分で作ったアプリケーションで開いたままの状態で、
同じファイルがほかのアプリケーションによって開かれて編集が行われたことを
どのようにして検出すればいいでしょうか?

すいません、よろしくお願いします。
七味唐辛子
ぬし
会議室デビュー日: 2001/12/25
投稿数: 660
投稿日時: 2003-11-10 16:32
ファイルを開くときのモード設定でなんとかなりませんか、
CHN
ぬし
会議室デビュー日: 2002/03/07
投稿数: 382
投稿日時: 2003-11-10 16:47
こんにちは。

モード設定ですか…
えー、ちょっとピンッときません、
もうすこし、具体的に教えていただけないでしょうか?
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-11-10 16:55
FileSystemWatcher.Changed イベント

http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/cpref/html/frlrfsystemiofilesystemwatcherclasschangedtopic.asp
http://www.microsoft.com/japan/msdn/library/default.asp?url=/japan/msdn/library/ja/vbcon/html/vbtskcreatinghandlersforfilesystemevents.asp

こんなところかな?
#以下追加
 「開いているファイル」というのは、普通は他のプロセスによる変更を禁止します。例えば、読みとっている最中にファイルを消されたり、サイズの変更をされると、今読んでいるデータが台無しになりますよね。
 例えばVS.NET IDEの「他のアプリケーションによる変更を反映する」などは、いったんファイルハンドルを閉じて、このイベントで検知していると思います。そうでなければ、読み込み途中にデータが変更されたときの作り込みが無茶苦茶大変になると思います。

[ メッセージ編集済み 編集者: Jitta 編集日時 2003-11-10 16:57 ]
CHN
ぬし
会議室デビュー日: 2002/03/07
投稿数: 382
投稿日時: 2003-11-10 17:08
こんにちは。

おー、すげー、これが知りたかったっす!

Jittaさんにはいつも助けて頂いてますね、
いつもありがとうございます。

ということで(どういうことで?(~o~))またよろしくお願いします。
ほむら
ぬし
会議室デビュー日: 2003/02/28
投稿数: 583
お住まい・勤務地: 東京都
投稿日時: 2003-11-10 18:16
ども、ほむらです。

後もう一つの手としてはタイムスタンプを覚えておいて
タイマーで自分自身を監視する方法もありますね。

もしもWindowsメッセージで処理していた場合、ファイル単位の監視は
Win9x系ではサポートしていないと思いました。

#蛇足でした。。
Jitta
ぬし
会議室デビュー日: 2002/07/05
投稿数: 6267
お住まい・勤務地: 兵庫県・海手
投稿日時: 2003-11-10 19:01
引用:

ほむらさんの書き込み (2003-11-10 18:16) より:

もしもWindowsメッセージで処理していた場合、ファイル単位の監視は
Win9x系ではサポートしていないと思いました。


 .NET Frameworkで提供されているのだから、それはないでしょう…と思ったら、サポートされていませんでした。使用の際にはご注意を。
引用:

必要条件

プラットフォーム: Windows NT Server 4.0, Windows NT Workstation 4.0, Windows 2000, Windows XP Home Edition, Windows XP Professional, Windows Server 2003 ファミリ

CHN
ぬし
会議室デビュー日: 2002/03/07
投稿数: 382
投稿日時: 2003-11-10 19:14

なるほど、ほむらさんの案もありですね

勉強になります。

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