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