我正在尝试使用SmbFile
和递归检查公司共享文件夹中的特定文件NtlmPasswordAuthentication
。
由于我对 Java 不是很了解,所以我遵循了在 Internet 上找到的示例,但每当我尝试执行以下操作时,我都会收到以下错误root.listFiles()
:
jcifs.smb.SmbException: Failed to connect: foldername/xx.xx.xx.xxx
jcifs.util.transport.TransportException
java.net.SocketException: Connection reset
我确实拥有共享文件夹的访问权限,所以我最初的想法是我的代码中缺少某些东西,而是身份验证或代理错误。我使用以下格式的 url:smb://foldername/something/somethingelse/anothersomething/
我的代码:
public static Boolean checkDiretory(String location, String docName){
Boolean result = false;
try {
NtlmPasswordAuthentication auth = new NtlmPasswordAuthentication("", Consts.username, Consts.password);
SmbFile root = new SmbFile(location, auth);
List<SmbFile> files = Arrays.asList(root.listFiles());
for(SmbFile file : files){
if(file.isDirectory()){
result = checkDiretory(file.getPath(), docName);
if(result)
return result;
}
else{
if(file.exists() && file.getName().contains(docName)){
return true;
}else{
result = false;
}
}
}
} catch (SmbException e) {
e.printStackTrace();
} catch (MalformedURLException e) {
e.printStackTrace();
}
return result;
}