JCIFS SmbFile.exists() 和 SmbFile.isDirectory() return false 当它存在时我可以 listFiles()
JCIFS SmbFile.exists() and SmbFile.isDirectory() return false when it exists and I can listFiles()
对于存在的子文件夹,我无法将 .exists() 或 .isDirectory() 设为 return true,我可以从中获取 .listFiles() 并获得预期结果。
subfolder = createSmbFile("smb://my-server/uploads/subfolder");
log.debug(subfolder.exists() + "/" + subfolder.isDirectory());
产生 "false/false"。然而调用 .listFiles() 将 return 一个 [file1, file2, file3...] 的数组。
我已经能够按名称(以扩展名结尾)实现特定文件的上传和下载,没有问题。
我做错了什么?
编辑:顺便说一句,这是我的 jcifs 版本
<dependency>
<groupId>eu.agno3.jcifs</groupId>
<artifactId>jcifs-ng</artifactId>
<version>2.1.4</version>
</dependency>
问题似乎是 SmbFile#uncPath() 是 my-server/uploads/subfolder
,而不是 my-server/subfolder
,因为尽管 servers/filesystems、exists() 和isHidden() 并不像人们预期的那样工作,而是总是 return false.
调试它并查看 SmbFile 的 fileLocator 属性 显示了这一点。
已解释here。
对于存在的子文件夹,我无法将 .exists() 或 .isDirectory() 设为 return true,我可以从中获取 .listFiles() 并获得预期结果。
subfolder = createSmbFile("smb://my-server/uploads/subfolder");
log.debug(subfolder.exists() + "/" + subfolder.isDirectory());
产生 "false/false"。然而调用 .listFiles() 将 return 一个 [file1, file2, file3...] 的数组。 我已经能够按名称(以扩展名结尾)实现特定文件的上传和下载,没有问题。
我做错了什么?
编辑:顺便说一句,这是我的 jcifs 版本
<dependency>
<groupId>eu.agno3.jcifs</groupId>
<artifactId>jcifs-ng</artifactId>
<version>2.1.4</version>
</dependency>
问题似乎是 SmbFile#uncPath() 是 my-server/uploads/subfolder
,而不是 my-server/subfolder
,因为尽管 servers/filesystems、exists() 和isHidden() 并不像人们预期的那样工作,而是总是 return false.
调试它并查看 SmbFile 的 fileLocator 属性 显示了这一点。
已解释here。