Я использую Java-API для Lotus Notes / Domino. Мне нужно разместить документы Lotus внутри папок Lotus (представлений), которые организованы как папки в файловой системе.
Чтобы найти и при необходимости создать папку, я использую следующий код. Строка пути использует разделитель обратной косой черты (например, «TestFolder / SubFolder1 / SubSubFolder1». Папки создаются и отображаются в клиенте заметок, как и ожидалось.
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);
}
}
}
}