如何在C#中从网络驱动器获取文件所有者?

3

我该如何在C#中获取网络驱动器上文件的所有者?

我使用以下代码:

string user = System.IO.File.GetAccessControl("filepath").GetOwner(typeof(System.Security.Principal.NTAccount)).ToString();

如果文件所有者的域与我的计算机相同,那么我可以获得文件所有者名称,但如果域与我的计算机不同,则会出现错误 "无法转换某些或所有的标识引用"。这个能实现吗?

你确定这个文件不是只读的吗? - Mahmoude Elghandour
是的,我对文件拥有完全访问权限。 - Raju Joshi
3
可能是因为当前用户不是域帐户... 代码过于简短无法确定。 - i100
1
是的,用户不是域帐户。但如果我想检索用户名,现在该怎么办? - Raju Joshi
2
如果您浏览到文件(右键单击文件->属性->安全->高级->所有者),您能正确地看到所有者吗? - Alex
这可能会发生在传统用户中。很多时候,当您查看路径时,您会在资源管理器中看到所有者为“s-12332-43243-等”。 - H20rider
2个回答

0
string user = File.GetAccessControl("filepath").GetOwner(typeof(SecurityIdentifier)).Translate(typeof(NTAccount)).ToString();

0
你可以尝试下面的代码片段,
string Owner = File.GetAccessControl("path").GetOwner(typeof(SecurityIdentifier)).Translate(typeof(NTAccount)).ToString();

你需要有访问权限


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接