我的网络驱动器映射为:
net use h:\ ip \ servername
我有一个普通的Java应用程序,它将从该驱动器读取txt文件。
代码:
File file = new File("H:\\MyFile.txt");
try {
byte[] bytes = Files.readAllBytes(Paths.get(file.getAbsolutePath()));
} catch (IOException ex) {
Logger.getLogger(JavaApplication25.class.getName()).log(Level.SEVERE, null, ex);
}
当我从计算机(Windows 7或具有Windows Vista的另一台计算机)运行此程序时,该程序运行没有问题。
但是,当我从装有Windows 10的计算机上运行该程序时,出现以下错误:
java.nio.file.NoSuchFileException: H:\MyFile.txt
但是如果我使用以下代码运行该应用程序,它将起作用:
File file = new File("\\ip\servername\MyFile.txt");
try {
byte[] bytes = Files.readAllBytes(Paths.get(file.getAbsolutePath()));
} catch (IOException ex) {
Logger.getLogger(JavaApplication25.class.getName()).log(Level.SEVERE, null, ex);
}
如何使用映射的驱动器号而不是完整地址?
答案 0 :(得分:1)
有同样的问题。通过编辑Windows注册表来解决
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System]
"EnableLinkedConnections"=dword:00000001
如果有效,则表示您的IT部门。应该管理更好的网络策略。
答案 1 :(得分:0)
使用\\ ip \ servername \ file.txt起作用