我正在尝试使用 smb URL 访问本地计算机上的文件夹。我的项目正在使用罐子:commons-vfs2-2.0.jar 和 jcifs-1.3.17.jar(以及所有其他必需的罐子)。完整的代码是:
public static void main(String[] args) throws FileSystemException {
jcifs.Config.registerSmbURLHandler();
StaticUserAuthenticator auth = new StaticUserAuthenticator(<domain>,<user>,<password>);
FileSystemOptions opts = new FileSystemOptions();
DefaultFileSystemConfigBuilder.getInstance().setUserAuthenticator(opts, auth);
FileSystemManager fs = VFS.getManager();
FileObject smbFile = fs.resolveFile("smb://10.0.2.2/TimeOut/");
System.out.println(smbFile.exists() + " " + smbFile.getContent().getLastModifiedTime());
}
我收到异常:
线程“主”org.apache.commons.vfs2.FileSystemException 中的异常:无法确定文件“smb://10.0.2.2/TimeOut”的类型。在 org.apache.commons.vfs2.provider.AbstractFileObject.getType(AbstractFileObject.java:505) 在 org.apache.commons.vfs2.provider.AbstractFileObject.exists(AbstractFileObject.java:477) 在 com.newsway.tests.VfsTest .main(VfsTest.java:23) 原因:jcifs.smb.SmbAuthException:登录失败:帐户当前被禁用。在 jcifs.smb.SmbTransport.checkStatus(SmbTransport.java:546) 在 jcifs.smb.SmbTransport.send(SmbTransport.java:663) 在 jcifs.smb.SmbSession.sessionSetup(SmbSession.java:390) 在 jcifs.smb。 SmbSession.send(SmbSession.java:218) 在 jcifs.smb.SmbTree.treeConnect(SmbTree.java:176) 在 jcifs.smb.SmbFile.doConnect(SmbFile.java:911) 在 jcifs。
据我了解,相关部分是:登录失败:帐户当前已禁用。
尽管我的用户/密码/域都很好,而且我正在做的正是 VFS 文档页面中定义的事情,但这仍然是事实。
我错过了什么?