如何从共享位置Windows中读取文件?(JAVA)

Vam*_*ani 6 java file

有没有办法从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

med*_*pal 6

在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.


Vam*_*ani 1

两种做法。

1) 将共享路径映射到本地驱动器。

2) 否则,如 Medopal 所提到的,将服务器路径硬编码在 new File('') 中。

new File("").getAbsolutePath()在本地系统上执行时,类似的东西可能会帮助我获取基本文件夹。同样,在共享位置上执行时,也没有这样的方法可以以编程方式找出工作基础。