Java,Dropbox API:使用path获取帐户上可用的文件夹名称列表。
我正在从事一个SpringMVC项目,其中我使用Dropbox让用户上传文件。为此,我想得到一个文件夹列表,这样用户可以选择上传文件的位置,我将保留一个记录 我如何使用dropbox java API做到这一点?我尝试了一些代码,但它没有显示我在dropbox帐户中创建的2个文件夹。任何帮助都很好 代码:Java,Dropbox API:使用path获取帐户上可用的文件夹名称列表。,java,dropbox,dropbox-api,Java,Dropbox,Dropbox Api,我正在从事一个SpringMVC项目,其中我使用Dropbox让用户上传文件。为此,我想得到一个文件夹列表,这样用户可以选择上传文件的位置,我将保留一个记录 我如何使用dropbox java API做到这一点?我尝试了一些代码,但它没有显示我在dropbox帐户中创建的2个文件夹。任何帮助都很好 代码: @Override public List<String> getListOfFolders(Long groupAccountId) { List&l
@Override
public List<String> getListOfFolders(Long groupAccountId) {
List<String> stringList = new ArrayList<>();
try {
GroupAccount groupAccount = this.groupAccountService.getGroupById(groupAccountId);
Person person = this.personService.findPersonByUsername(groupAccount.getAdminUsername());
if (person.isDropbox()) {
DbxClient client = new DbxClient(config, person.getDropboxAccessToken());
DbxEntry entry = client.getMetadata("/");
if (entry instanceof DbxEntry.Folder) {
DbxEntry.Folder folder = (DbxEntry.Folder)entry;
stringList.add(folder.toString());
System.out.println(folder.toString());
}
}
return stringList;
} catch (DbxException e) {
e.printStackTrace();
return stringList;
}
}
非常感谢:-)可以使用
getMetadata
方法列出路径的内容,如果需要递归列表,也可以使用getDelta
。如果您没有看到预期的结果,请确保您链接到了正确的帐户。此外,如果你的应用注册了“应用文件夹”权限,你将只看到应用的应用文件夹中的项目(默认情况下在/Apps下创建,用于英语本地化)。此外,你的代码似乎根本不进行任何枚举。(我在任何地方都没有看到循环。)我认为如果您强制转换到[DbxEntry.WithChildren],应该有children
属性(http://dropbox.github.io/dropbox-sdk-java/api-docs/v1.7.x/com/dropbox/core/DbxEntry.WithChildren.html)
?不是100%确定。@Greg:getMetaData方法不返回要迭代的列表,并且getDelta方法不能用于For each。你能给我举个例子说明如何获取文件夹列表吗?因为我花了很多时间搜索,却找不到任何文件夹。其次,它是正确的帐户,因为插入文件与我链接的帐户的性能正确。@smarx:您提供的URL是404。我知道我是有枚举的,因为我找不到一种方法可以给我枚举的东西。如果我使用getDelta,IDE会抱怨这不适用于DbxDelta。你能给我举个例子说明如何完成这项任务吗。谢谢。请再次尝试该URL,尽管它看起来与我之前的评论相同:
Folder("/", iconName="folder", mightHaveThumbnail=false)