Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/388.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jcifs.smb.smb异常:系统找不到指定的文件?_Java_Smb - Fatal编程技术网

Java jcifs.smb.smb异常:系统找不到指定的文件?

Java jcifs.smb.smb异常:系统找不到指定的文件?,java,smb,Java,Smb,当运行下面的代码时,我得到了异常 jcifs.smb.SmbException:系统找不到指定的文件 代码: public void m1(String b) throws IOException { // TODO Auto-generated method**strong text** stub BufferedReader br=null; String urlToBackUpFile = "smb://" +b +"/" + "c$/Pr

当运行下面的代码时,我得到了异常

jcifs.smb.SmbException:系统找不到指定的文件

代码:

public void m1(String b) throws IOException {
        // TODO Auto-generated method**strong text** stub

        BufferedReader br=null;
        String urlToBackUpFile = "smb://" +b +"/" + "c$/Program Files/Office/Config/OfficeSyncData.ini";
        String cp="smb://" +b +"/" + "c$/Program Files/Office/Config/OfficeSyncData.txt";
        System.out.println("smb folder of source file" + urlToBackUpFile);
        NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication(null, "usrname", "passwd");


          SmbFile dir = new SmbFile(cp, auth);
          SmbFileInputStream in = new SmbFileInputStream( dir );
         // br = new BufferedReader(new InputStreamReader(in));


          System.out.println(dir.getDate());
          SmbFile dest = new SmbFile (urlToBackUpFile,auth);
          //count.copyTo(dest);
          dir.copyTo(dest);

    }

如何解析?

如果没有整个堆栈跟踪,我无法完全确定,但您可能需要在路径中指定转义空间字符

试试这个:

String urlToBackUpFile = "smb://" +b +"/" + "c$/Program\\ Files/Office/Config/OfficeSyncData.ini";
如果“b”包含空格,请确保您也这样做


已编辑:也可尝试:能否将路径指向不包含任何空格的位置?这将证明空格语法是否是问题的根源…

指定路径中的“b”是什么?b的值是多少?异常指的是哪一行?如果要以这种方式进行转义,至少需要两个“\”,即
程序\\文件
。但没有说这会有帮助。抱歉,已编辑代码以包含双精度“\”。无论如何,也许值得一试,因为linux终端的shell语言(即使在windows中进行仿真)需要占用空间