我在使用JCIFS从Java应用程序连接到samba驱动器时遇到问题。问题似乎是JCiFS想要连接的URL。我无法输入服务器名称/文件夹/文件夹,因为我无权登录服务器以获取文件夹。我可以通过Samba访问服务器上的文件夹。我可以通过Windows \ celery \ rim \ dev映射它,但是不能在URL中使用它传递给JCIFS。
下面的URL不能进入dev目录。如果我只做smb:// celery / rim /,那我就可以进入,但是那不是正确的目录,我需要移至dev目录。
String url = "smb://celery/rim/dev/";
NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("domain", "user", "password");
try {
SmbFile dir = new SmbFile(url, auth);
String[] content = dir.list();
for(String file : content){
System.out.println(file);
}
答案 0 :(得分:0)
@Eliad Cohen-我敢肯定这就是问题所在。我通过转到JCIFS-ng解决了这个问题。我只希望他们有更好的文档。
CIFSContext baseCxt = new BaseContext(new PropertyConfiguration(System.getProperties()));
NtlmPasswordAuthentication creds = new NtlmPasswordAuthentication(baseCxt, "am", nasProperties.getUsername(),nasProperties.getPassword());
CIFSContext ct = baseCxt.withCredentials(creds);
SmbFile dir = new SmbFile(url, ct);
SmbFileOutputStream sfos = new SmbFileOutputStream(dir);
sfos.write(csv.getBytes());
sfos.close();