Java Windows:显示带有File.listRoots的映射网络驱动器
代码: 当我启动cmd并运行这个类时,我的所有驱动器都会列出。当我以管理员身份启动cmd并运行此命令时,映射的网络驱动器不会列出 另外,当我手动启动服务器并调用File.listRoots()时,我的所有驱动器都会列出。但是,当我使用服务启动服务器时,不会列出网络驱动器Java Windows:显示带有File.listRoots的映射网络驱动器,java,windows,filesystems,Java,Windows,Filesystems,代码: 当我启动cmd并运行这个类时,我的所有驱动器都会列出。当我以管理员身份启动cmd并运行此命令时,映射的网络驱动器不会列出 另外,当我手动启动服务器并调用File.listRoots()时,我的所有驱动器都会列出。但是,当我使用服务启动服务器时,不会列出网络驱动器 如何始终列出网络驱动器?我读到我可以在服务中映射网络驱动器,但这不是一个选项。驱动器已经存在,不允许我对其进行任何更改。映射的驱动器是特定于用户的(可能在登录期间映射),而不是特定于计算机的。因此,当映射驱动器上的userA日志
如何始终列出网络驱动器?我读到我可以在服务中映射网络驱动器,但这不是一个选项。驱动器已经存在,不允许我对其进行任何更改。映射的驱动器是特定于用户的(可能在登录期间映射),而不是特定于计算机的。因此,当映射驱动器上的
userA
日志时。当您以其他用户(即管理员或作为系统运行的服务)的身份启动程序时,映射的驱动器不可用,因此您无法访问它们。你的选择是:
- 将驱动器重新映射为新用户(即服务)
- 在当前用户的上下文中运行应用程序
- 通过UNC路径访问您需要的文件(即,代替
使用s:\blah
\\server\shared\u folder\blah
import java.io.*;
public class TestFileRoots {
public static void main(String[] args) {
for(File f : File.listRoots()){
System.out.println(f.getAbsolutePath());
}
}
}