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

Posted

技术标签:

【中文标题】jcifs.smb.SmbException:系统找不到指定的文件?【英文标题】:jcifs.smb.SmbException: The system cannot find the file specified? 【发布时间】:2015-09-28 20:24:33 【问题描述】:

运行以下代码时出现异常

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);

    

我该如何解决?

【问题讨论】:

指定路径中是​​否有“b”? b 的值是多少,异常指的是哪一行? 【参考方案1】:

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

试试这个:

String urlToBackUpFile = "smb://" +b +"/" + "c$/Program\\ Files/Office/Config/OfficeSyncData.ini";

并确保如果“b”包含一个空格,你也这样做。

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

【讨论】:

如果你想以这种方式逃避它,你至少需要两个`\`,即program\\ files。并不是说它会有所帮助。 抱歉,编辑了代码以包含双 '\' 。也许值得一试,因为 linux 终端的 shell 语言(即使在 windows 中模拟)需要空间转义

以上是关于jcifs.smb.SmbException:系统找不到指定的文件?的主要内容,如果未能解决你的问题,请参考以下文章

JCIFS SmbException

JCIFS - 连接中断

系统界面图片

欧拉系统和鸿蒙系统啥关系

系统镜像和原版系统有啥区别

文件系统类型