如何在Lotus Notes中查找文件夹的所有子文件夹(视图)

克里斯托夫·基梅尔

我正在为Lotus Notes / Domino使用Java-API。我需要将Lotus-Documents放置在auf Lotus-Folders(视图)中,这些文件的组织方式类似于文件系统中的文件夹。

要查找并可选地创建一个文件夹,我使用以下代码。路径字符串使用反斜杠分隔符(即“ TestFolder / SubFolder1 / SubSubFolder1”。)将按预期方式创建文件夹并将其显示在Notes客户端中。

View view = database.getView(path);
if (view == null) {
    db.enableFolder(path);
    view = db.getView(path);
}

如何找到特定文件夹的所有子文件夹?

现在,我正在使用此替代方法。恕我直言,这不是很好,因为我一直在读取所有目录。当结构变大时,这可能会对性能产生影响。

List<View> result = new ArrayList<View>();
String prefix = getPath() + getSeparator();
for (Object obj : database.getViews()) {
    View view = (View)obj;
    if (view.isFolder()) {
        String path = view.getName();
        if (path.startsWith(prefix)) {
            String suffix = path.substring(prefix.length());
            if (suffix.indexOf(getSeparator()) == -1) {
                result.add(view);
            }
        }
    }
}
托斯滕·林克

不幸的是,没有真正快速的方法可以做到这一点。如果您确实需要性能,那么使其速度显着提高的唯一方法是使用NoteCollectionClass并获取所有文件夹。然后遍历代表文件夹的NotesDocuments,并阅读“ $ Title”项。这是执行此操作的示例代码:

NoteCollection nc = database.createNoteCollection(false);
nc.setSelectFolders(true);
nc.buildCollection();
String id = nc.getFirstNoteID();
while (id.length() > 0) {
  String strFolderName = ""
  Document docFolder = database.getDocumentByID(strFolderId);
  strFolderName = docFolder.getItemValueString("$Title");
  if (strFolderName.startsWith(prefix)) {
     ....
  }
}

在我的测试中,这比使用getViews()-方法快了2-3倍。

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

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

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

如何计算文件夹,其子文件夹和all中的所有文件。该计数不应包括文件夹计数

如何使用.gitignore忽略文件夹中的所有子文件夹

如何在子文件夹PHP中呈现视图

如何在文件夹和子文件夹中的所有Jpeg图像上运行guetzli

如何在不包含文件夹本身的情况下查找文件夹中的所有文件

如何查找文件夹中文件名末尾没有特定字符的所有文件?

如何使bash代码对文件夹和子文件夹中的所有文件起作用?

如何在UNIX中的所有子文件夹中查找特定文件

如何将文件夹和子文件夹中的所有文件放入数组

如何最好地删除文件夹及其子文件夹中的所有文件

如何在ckfinder中显示所有文件夹,子文件夹和文件

Windows-如何将子文件夹中的所有文件移动到父文件夹?

Lotus Notes:通过C-API获取按列排序的视图或文件夹中的所有注释

如何使用PowerShell从文件夹和所有子文件夹中删除所有访问规则?

如何在文件夹中查找与特定模式匹配(或不匹配)的所有文件?

如何删除文件夹中除最新X子文件夹以外的所有子文件夹?

如何在仅包含文件夹的Linux系统上递归查找文件夹?

如何在所有文件夹和子文件夹中添加前缀?(视窗)

查找其中存在Lotus Notes文档的文件夹

如何查找文件夹中的所有硬链接?

如何将当前文件夹中的所有文件移动到子文件夹?

如何忽略提名文件夹中的_vti_cnf和_vti_pvt文件夹以及提名文件夹的所有子文件夹?

如何查找子文件夹中缺少特定属性的所有文件?

埃马克。头盔包。如何在文件夹(不是 git 文件夹)和所有子文件夹中查找文件?

如何使用文件夹名称查找所有文件?

Webpack - 如何捆绑/要求文件夹(子文件夹)的所有文件

如何压缩 Bash 中的所有子文件夹?

正则表达式 - 如何在动态文件夹名称中查找文件

如何使用bash将子文件夹中的所有文件移动到新文件夹中?