c#在Windows中获取文件所有者

本文关键字:文件 所有者 获取 Windows | 更新日期: 2023-09-27 18:05:46

我想使用下面的代码获得一个文件的所有者

File.GetAccessControl(filename).GetOwner(typeof(SecurityIdentifier)).Translate(typeof(NTAccount))

然而,它给了我BUILTIN'Administrators作为所有者,但我可以在文件资源管理器中看到所有者是Domain'MyUserName。

为什么会发生这种情况,如何解决它?

编辑:这个链接解释了发生了什么。它与管理员组中的用户创建的文件以及Windows如何处理这些文件的所有者有关。

c#在Windows中获取文件所有者

我能够得到一个文件的实际所有者通过这个…不确定这是不是你需要的。System.IO.FileInfo Fi = new System.IO.FileInfo(@"path2file");

MessageBox.Show(Fi.GetAccessControl().GetOwner(typeof(System.Security.Principal.SecurityIdentifier)).Translate(typeof(System.Security.Principal.NTAccount)).ToString());