2

現在、ファイルロックを使用するレガシー プログラムを介して 1 つのファイルにアクセスしようとするユーザーが多すぎるという問題があります。

サーバー上で実行され、この特定のファイル (フラット ファイル データベース) を監視する dotnet プログラムを作成できるかどうかを調べています。クライアントがこのファイルにアクセスしようとして、別のユーザーによってロックされている場合はいつでも、誰がファイルにアクセスしているかを知らせるメッセージを送信して、私ではなくその人を困らせることができるようにしたいと考えています。

compmgmt.msc を開くと、ファイル、ファイルロック、およびユーザーがファイルをロックしていることがわかるので、この情報にアクセスできることがわかります。ただし、この情報を取得できる dotnet クラスが見つからないようです (#locks、ロックしたユーザー)。

ここで私を助けることができるクラスを知っている人はいますか?

4

2 に答える 2

2

基礎となる winapi 関数は NetFileEnum() です。ピンボークする必要があります。

于 2012-11-09T03:37:29.530 に答える
0

これらの情報には、おそらく WMI (Windows Management Instrumentation) を通じてアクセスできます: http://msdn.microsoft.com/en-us/library/windows/desktop/aa394582%28v=vs.85%29.aspx

これは良い出発点になる可能性があります: http://social.msdn.microsoft.com/Forums/en/netfxbcl/thread/19b88200-3dfd-4042-b16a-1f514dd5e1f9

また、WMI Explorer を使用してコーディングを開始する前に、探している情報を取得してみてください: http://www.ks-soft.net/hostmon.eng/wmi/index.htm

これも役に立ちます: select * from cim_datafile where name='d:\file.txt'

二重スラッシュ「\」の使用に注意してください

于 2012-11-09T00:30:28.867 に答える