2
我正在试图创建一个SmbFileInputStream,导致我的系统上存在一个目录。我正在使用下面的代码。每次我在第三次尝试抓取时都会收到一个错误,它会向我显示下面的堆栈跟踪。我相信错误在于SMB网址的格式。如果有人能帮忙指出我的域名,服务器和用户信息的配置错误,或者如何逃避下面的特殊字符,我将非常感激。SmbFileInputStream导致SmbException:SMB URL语法?
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import jcifs.smb.*;
import jcifs.*;
public class jcifsX {
public static void main (String[] args){
System.err.println("*********************************************************** loadWorkbookOrFail was ran");
// create a new file input stream with the input file specified by fileName
jcifs.Config.registerSmbURLHandler();
NtlmPasswordAuthentication npa = null;
try{
npa = new NtlmPasswordAuthentication("myDomain","myUser","myPass");
System.err.println("*********************************************************** NtlmPasswordAuthentication created successfully");
} catch (Exception e) {
System.err.println("*********************************************************** Failed to create NtlmPasswordAuthentication. Stack trace to follow");
e.printStackTrace();
}
SmbFile smbf = null;
try{
smbf = new SmbFile("smb:" + "//myDomain;myUser:[email protected]/myShare/" + args, npa);
System.err.println("*********************************************************** SmbFile successfully created");
}
catch (Exception e) {
System.err.println("*********************************************************** Stack trace to follow");
e.printStackTrace();
}
SmbFileInputStream sfin = null;
try{
sfin = new SmbFileInputStream(smbf);
System.err.println("*********************************************************** SmbFileInputStream successfully initiated");
throw new IllegalArgumentException("If you're seeing this, it looks like it worked");
}
catch (Exception e){
System.err.println("*********************************************************** SmbFileInputStream failed: Stack trace to follow. args = " + args);
e.printStackTrace();
}
}
}
我收到一旦运行这个堆栈跟踪看起来像
jcifs.smb.SmbException: The system cannot find the file specified.
at jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:563)
at jcifs.smb.SmbTransport.send(SmbTransport.java:663)
at jcifs.smb.SmbSession.send(SmbSession.java:238)
at jcifs.smb.SmbTree.send(SmbTree.java:119)
at jcifs.smb.SmbFile.send(SmbFile.java:775)
at jcifs.smb.SmbFile.open0(SmbFile.java:989)
at jcifs.smb.SmbFile.open(SmbFile.java:1006)
at jcifs.smb.SmbFileInputStream.<init>(SmbFileInputStream.java:73)
at jcifs.smb.SmbFileInputStream.<init>(SmbFileInputStream.java:65)
at jcifsX.main(jcifsX.java:61)
预先感谢您向任何人愿意花专门讨论这一问题的任何时间。非常感谢。