gpt4 book ai didi

java - Dropbox API v2 中的全局光标

转载 作者:太空宇宙 更新时间:2023-11-04 13:08:24 25 4
gpt4 key购买 nike

我使用 dropbox/delta 端点来跟踪 Dropbox 内的更改。更准确地说,下面的代码允许我递归地跟踪“/superfolder”中的更改(我在这里使用 DbxClientV1):

    List<String> listOfResults = new ArrayList<String>();
String path = "/superfolder";
String cursor = null;

while (true) {
DbxDelta<DbxEntry> deltaWithPathPrefix = client.getDeltaWithPathPrefix(cursor, path);
cursor = deltaWithPathPrefix.cursor;
if (deltaWithPathPrefix.reset) {
System.out.println("Reset!");
}
for (DbxDelta.Entry entry : deltaWithPathPrefix.entries) {
if (entry.metadata == null) {
System.out.println("Deleted: " + entry.lcPath);
listOfResults.add(entry.lcPath);
} else {
System.out.println("Added or modified: " + entry.lcPath);

}
}

if (!deltaWithPathPrefix.hasMore) {
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
Logger.getLogger(MainSearchV1.class.getName()).log(Level.SEVERE, null, ex);
}
}
}

现在,我已切换到 DbxClientV2 客户端。为了跟踪 dropbox 上的更改,我使用以下形式的 client.files.listFolder() :

    TreeMap<String, Metadata> children = new TreeMap<String, Metadata>();
Files.ListFolderResult result;

String cursor = null;

while (true) {
if (cursor == null) {
result = client.files.listFolder("/superfolder");
} else {
result = client.files.listFolderContinue(cursor);
}
cursor = result.cursor;
for (Metadata md : result.entries) {
if (md instanceof DeletedMetadata) {
children.remove(md.pathLower);
System.out.println("Deleted: " + md.pathLower);
} else {
children.put(md.pathLower, md);
System.out.println("State: " + md.pathLower);
System.out.println(md.toString());
}
}

if (!result.hasMore) {
try {
Thread.sleep(1000);
} catch (InterruptedException ex) {
}
}
}

遗憾的是,我发现我只能跟踪“ super 文件夹”文件夹的更改。有没有办法获得一个“全局光标”,在 Dropbox API v2 中递归跟踪更改?

最佳答案

Java SDK 几乎所有带有多个可选参数的调用都使用构建器模式。如果我正确理解你的问题,我认为你正在寻找这个:

result = client.files.listFolderBuilder("/superfolder")
.recursive(true)
.start();

编辑:您询问了“全局”光标。我认为您实际上意味着递归,但如果您真正意味着全局,您可以传递一个空字符串 ("") 作为表示根的路径。

关于java - Dropbox API v2 中的全局光标,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34201372/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com