代码:
import java.io.*;
public class TestFileRoots {
public static void main(String[] args) {
for(File f : File.listRoots()){
System.out.println(f.getAbsolutePath());
}
}
}
当我启动cmd并运行此类时,列出了我的所有驱动器。当我以管理员身份启动cmd并运行它时,我的映射网络驱动器未列出。
此外,当我手动启动服务器并调用File.listRoots()时,会列出我的所有驱动器。但是,当我使用服务启动服务器时,未列出网络驱动器。
如何始终列出我的网络驱动器?我读过我可以在服务中映射网络驱动器,但这不是一个选项。驱动器已经存在,我不允许改变它。
答案 0 :(得分:6)
映射的驱动器是特定于用户的(可能在登录期间映射)而不是特定于计算机的。因此,映射驱动器上的userA
日志时。当您以不同的用户(即作为管理员或作为SYSTEM运行的服务)启动程序时,映射的驱动器不可用,因此您无法访问它们。您的选择是:
s:\blah
使用\\server\shared_folder\blah