Code:
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() 时,我的所有驱动器都会列出。但是当我使用服务启动服务器时,网络驱动器未列出。
如何始终列出我的网络驱动器?我读到我可以在服务中映射网络驱动器,但这不是一个选项。驱动器已经存在,我不允许对其进行任何更改。
映射的驱动器是特定于用户的(可能在登录期间映射)而不是特定于计算机的。所以,当userA
驱动器上的日志已映射。当您以其他用户身份(即以管理员身份或以系统身份运行的服务)启动程序时,映射驱动器不可用,因此您无法访问它们。您的选择是:
- 作为新用户(即服务)再次映射驱动器
- 在当前用户的上下文中运行您的应用程序
- 通过 UNC 路径访问您需要的文件(即代替
s:\blah
use \\server\shared_folder\blah
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)