如何使用Java在联网计算机上打开目录
我已经试过了如何使用Java在联网计算机上打开目录,java,Java,我已经试过了 String userHomePath = "\\mysvr\\project\\my Team\\001 test\\001 test\\003 Report"; File userHome = new File(userHomePath); try { Desktop.getDesktop().open(userHome); } catch (IOException e) { // TODO Auto-genera
String userHomePath = "\\mysvr\\project\\my Team\\001 test\\001 test\\003 Report";
File userHome = new File(userHomePath);
try {
Desktop.getDesktop().open(userHome);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
为什么它打不开?请给我解释一下。因为空白?如果是这样,我该如何修复它。谢谢
这是一个例外:
java.io.IOException: Failed to open file:////mysvr/project/my%20Team/001%20test/001%20test/003%20Report/. Error message: The system cannot find the file specified.
at sun.awt.windows.WDesktopPeer.ShellExecute(Unknown Source)
at sun.awt.windows.WDesktopPeer.open(Unknown Source)
at java.awt.Desktop.open(Unknown Source)
at org.ace.insurance.fire.renewal.Test.main(Test.java:13)
我可以一直打开到\mysvr\project。使用//mysvr/project/。。。或\\\\mysvr\\project\\
当然,首先在Windows资源管理器中尝试一下。将Java字符串文本中的任何反斜杠加倍。尝试以下操作:
String userHomePath = "\\\\mysvr\\project\\my Team\\001 test\\001 test\\003 Report";
File userHome = new File(userHomePath);
try {
Desktop.getDesktop().open(userHome);
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
包括引号作为路径的一部分:
String userHomePath = "\"\\mysvr\\project\\my Team\\001 test\\001 test\\003 Report\"";
添加了//mysvr/project/。。。或\\\\mysvr\\project\\。。。正如@Joop Eggen和其他人已经提到的,你的代码对我也有效
如果没有双正斜杠,它就不会。因此,在资源管理器中检查文件夹的可用性,以及它是否可用或存在等
如果两个条件都满足,那么我不知道还有什么建议
另外,两种情况下引发的异常是相同的:java.lang.IllegalArgumentException您是否尝试过\\\\mysvr\\project\\?请发布堆栈跟踪或对问题的描述,而不是它无法打开。否,第一个-\\\\mysvr\\project\\my Team等只需要四个反斜杠。这很奇怪-错误消息表明文件名上存在URL编码,我认为新文件不会这样做。就我个人而言,我要做的不是猜测指定位置的正确方法,而是组合一个小Swing应用程序,使用JFileChooser导航到并选择位置。换句话说,让Java告诉您它认为位置的路径是什么;。然后尝试Desktop.getDesktop.browseuserHome.toURL;。然而,我现在感到好奇:你有没有尝试过在道路上使用空格?我有一个发痒的想法,即空格是OP的关键。那么,答案就简单了:操作系统没有说谎,路径——实际上——不存在:你确定可以从Windows资源管理器访问服务器吗?