Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/335.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java,Dropbox API:使用path获取帐户上可用的文件夹名称列表。_Java_Dropbox_Dropbox Api - Fatal编程技术网

Java,Dropbox API:使用path获取帐户上可用的文件夹名称列表。

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

我正在从事一个SpringMVC项目,其中我使用Dropbox让用户上传文件。为此,我想得到一个文件夹列表,这样用户可以选择上传文件的位置,我将保留一个记录

我如何使用dropbox java API做到这一点?我尝试了一些代码,但它没有显示我在dropbox帐户中创建的2个文件夹。任何帮助都很好

代码:

  @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)