我使用https://github.com/hierynomus/smbj進(jìn)行 samba 訪(fǎng)問(wèn)。我只想獲取目標(biāo)目錄的子文件夾。下面的代碼我得到“..”,“?!?和所有文件 - 有沒(méi)有一種優(yōu)雅的方式來(lái)獲取子目錄?SmbConfig config = SmbConfig.builder().withMultiProtocolNegotiate(true).build(); smbClient = new SMBClient(config); Connection connection = smbClient.connect(smbServerName); AuthenticationContext ac = new AuthenticationContext(smbUser, smbPassword.toCharArray(), smbDomain); Session session = connection.authenticate(ac); share = (DiskShare) session.connectShare(smbShareName); List<FileIdBothDirectoryInformation> subs = share.list("mydirWhichSubDirsIwant");
1 回答

慕仙森
TA貢獻(xiàn)1827條經(jīng)驗(yàn) 獲得超8個(gè)贊
您需要從返回的列表中過(guò)濾出結(jié)果。如果您只想要子目錄,您可以按如下方式獲取它們:
List<String> subDirectories = new ArrayList<>();
for (FileIdBothDirectoryInformation sub: subs) {
String filename = sub.getFileName();
if (".".equals(filename) || "..".equals(filename)) {
continue;
}
if (EnumWithValue.EnumUtils.isSet(sub.getFileAttributes(), FileAttributes.FILE_ATTRIBUTE_DIRECTORY)) {
subDirectories.add(filename);
}
}
添加回答
舉報(bào)
0/150
提交
取消