C# 获取打开的文件的用户名

C# 获取打开的文件的用户名,c#,file,sharing,C#,File,Sharing,有没有办法了解打开文件的用户的用户名 我正在开发一个程序,它将成为许多用户的桌面客户端。应用程序将打开一些文件,我希望允许许多用户同时打开这些文件,但只允许第一个用户具有写入权限。我想要的是能够告诉其他有文件写入权限的用户 这是应用程序可以学到的东西吗?(我正在VS2008中开发)。Windows不支持它。但是你可以自己轻松地添加它。当您获得对该文件的写入访问权限时,请在同一目录(如~originalname.UserName)中使用用户名(Environment.UserName)写入另一个隐

有没有办法了解打开文件的用户的用户名

我正在开发一个程序,它将成为许多用户的桌面客户端。应用程序将打开一些文件,我希望允许许多用户同时打开这些文件,但只允许第一个用户具有写入权限。我想要的是能够告诉其他有文件写入权限的用户


这是应用程序可以学到的东西吗?(我正在VS2008中开发)。

Windows不支持它。但是你可以自己轻松地添加它。当您获得对该文件的写入访问权限时,请在同一目录(如~originalname.UserName)中使用用户名(Environment.UserName)写入另一个隐藏文件


当您无法获得写访问权限时,请尝试打开该文件以读取用户名。如果失败,请休眠一秒钟。

这是某种客户机-服务器应用程序吗?这是一种有效的解决方案。但我认为你真的可以用WindowsAPI做到这一点。您可以了解哪些进程打开了文件,也可以了解用户拥有哪个进程。我不知道正确的API调用,但这似乎是可能的。NtQuerySystemInformation,实际参数没有文档记录,每个操作系统的结构都不同。更重要的是:拥有该文件的进程可能存在于数千英里之外的某台机器上,通过VPN隧道连接。远离你的机器。