smbj:如何仅获得子目录?

迪米特里·特南鲍姆

我使用https://github.com/hierynomus/smbj进行samba访问。我只想获取目标目录的子文件夹。在下面的代码中,我得到“ ..”,“。” 以及所有文件-是否有一种优雅的方法仅获取子目录?

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");
Hiery Nomus

您需要从返回的列表中过滤出结果。如果只需要子目录,则可以按以下方式获取它们:

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);
    }
}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何仅将模块下载到存储库子目录中的软件包?

Git:如何仅克隆Git存储库的子目录?

如何递归grep并忽略子目录的子目录?

仅当脚本位于子目录中时,才如何执行代码块?

从目录和子目录中仅获取重复文件

如何获得与目录及其子目录相同的规则

如何仅使用子目录的名称查找特定深子目录的路径?

仅通过子目录循环

Keras DataGenerator:如何从每个子目录仅加载特定数量的图像?

如何仅克隆Git存储库的子目录?

列出目录,但仅包含子目录?

grep仅子目录匹配模式

如何将bash查找限制为仅特定的子子目录

如何仅列出删除目录和子目录的文件名

如何获得C中子目录的总大小?

批处理仅显示目录及其子目录

子目录中的页面仅重定向到该子目录

如何仅压缩多个子目录下的文件?

仅同步某些目录和其中的某些子目录

MySQL REGEXP仅匹配给定目录的子目录

Unix-仅列出包含子目录的目录

将所有子子目录的内容仅移动到其子目录中

如何获得所有目录和子目录的那些lastwrite时间<= mydate LINQ c#

仅列出子目录,而不是完整目录

如何递归压缩仅包含文本文件的所有子目录

如何确保目录仅包含特定的子目录?

如何使用 -haltr 格式仅显示子目录内的文件?

如何使用 Nginx 在子目录中安装 Ghost?(获得 404)

如何在排除子目录的同时递归地获得 Jenkins 中的特定工件?