使用C#确定谁打开了文件

时间:2011-05-04 17:12:47

标签: c# .net file

使用C#如何获取有关打开文件的人的信息? 用户名和机器名就足够了。

如果重要,我让Windows工作站通过Samba访问Linux文件服务器上的文件。 我需要在工作站上运行的程序中使用此信息。

2 个答案:

答案 0 :(得分:4)

核心.NET库没有任何方法可以做到这一点。

如果我理解正确,你想从Windows工作站A知道谁在Linux文件共享上打开了文件,而那些打开文件的用户可能来自其他Windows框,如果是这样,那么你将需要在Linux端提供服务,您可以查询该服务以将其提供回您的Windows工作站。

在本地计算机上可以实现这一点,但至少需要与NtQueryInformationFileNtQueryObject(两者都没有正式记录)等操作系统API互操作。像进程监视器这样的工具动态安装设备驱动程序以达到它们所做的检查级别,并且只会告诉您哪个用户打开了哪些本地文件句柄。

答案 1 :(得分:1)

我认为你不能使用.NET

来做到这一点

过去当我遇到这个问题时,我总是最终使用process monitorprocess explorer