有没有办法从Windows上的网络共享位置读取文件?
比方说,我就是这个简单的代码,它从Addons文件夹中读取一个名为readMe.txt的文本文件.
import java.io.File;
class Sample{
public static void main(String[] ar){
File file = new File("Addons/ReadMe.txt");
System.out.println(file.getAbsolutePath());
//followed by printing the contents of file
}
}
Run Code Online (Sandbox Code Playgroud)
我使用的是Windows批处理执行此文件runme.bat有
java Sample
PAUSE
Run Code Online (Sandbox Code Playgroud)
只有当我将Addons文件夹与ReadMe.txt,Sample.class,runme.bat文件放在本地驱动器中时,bat才会运行并执行上面的类.
将它放在具有UNC路径的网络共享位置时,如\\name\Shared
在这种情况下,bat文件通常从C:\ Windows启动基础并抛出classNotFoundException.我宁愿将共享驱动器映射到*Z:*驱动器或其他什么,但我不想这样做.
我希望代码以编程方式检测和检索Addons文件夹中Readme.txt的内容,而不管它是在本地驱动器上还是在共享驱动器上执行.有没有办法实现这个目标?请帮忙..
谢谢
Veekay
在Java中使用文件路径时,请确保\在提供完整路径名时正确转义所有文件路径.
例如,如果文件位于PC上,并且(10.10.10.123)在共享文件夹上有IP ,Addons则完整路径将为:
File f = new File ("\\\\10.10.10.123\\Addons\\readme.txt");
Run Code Online (Sandbox Code Playgroud)
除了完整路径之外,您的代码正在抛出一个ClassNotFound因为您没有正确设置JAVA-CLASSPATH.
两种做法。
1) 将共享路径映射到本地驱动器。
2) 否则,如 Medopal 所提到的,将服务器路径硬编码在 new File('') 中。
new File("").getAbsolutePath()在本地系统上执行时,类似的东西可能会帮助我获取基本文件夹。同样,在共享位置上执行时,也没有这样的方法可以以编程方式找出工作基础。
| 归档时间: |
|
| 查看次数: |
51949 次 |
| 最近记录: |