我一直在使用Files.getOwner()
尝试记录网络上的文件夹,但这样做会返回如下所示的ID。
S-1-5-21-1027050117-121514058-1707179805-77926 (Unknown)
获取所有者登录名而不是上述ID的最佳方式是什么?
答案 0 :(得分:0)
您可以尝试System.getProperty("user.name");
这将返回环境变量USERNAME
。
答案 1 :(得分:0)
在运行以下Java代码的Windows 7上使用JDK 8
System.out.println(Files.getOwner(Paths.get("C:\\test\\test.txt")));
在我刚刚创建的文本文件中,我得到以下输出:
chris-PC\chris_2 (User)
其中chris-PC是我的计算机名称,chris_2是我的Windows用户帐户。当我搜索这个问题时,我发现this post有人遇到与samba映射驱动器相同的问题。给出的答复如下:
据我所知,这是Windows无法显示的内部用户ID - 因为某些原因 - 将其翻译为真实用户名。
我不知道Samba如何为Windows提供文件和文件夹所有者,但是 我说Windows无法找到该用户。该用户存在于 unix,它可能与Windows机器没有任何关系 访问共享。您可能必须以某种方式设置两个系统 这将允许他们共享用户定义(例如,将两者都放在一起) Windows域),以便能够在Windows上显示用户名。 (只是猜测。)
所以,我不确定这个问题是否可以合理解决。