0

给定一个 com.box.androidlib.Utils.BoxUtils.BoxFolder 对象,我想递归该对象的父文件夹以从根目录检索路径。

我希望使用类似下面的代码来执行此操作,其中使用 Box.getAccountTree(...) 检索 currentBoxFolder,就像在包含的示例代码的 Browse 类中所做的那样。但是,getParentFolder 返回 null(对于我希望它为非 null 的非根文件夹)。

我认为可以通过修改源来获取其他属性来填充父变量,但我能够做到。有什么建议么?

List<BoxFolder> parentDirs = new ArrayList<BoxFolder>();
parentDirs.add(new BoxFolderEntry(currentBoxFolder));

BoxFolder parent = currentBoxFolder.getParentFolder();
while(parent != null)
{
    parentDirs.add(0, parent);
    parent = parent.getParentFolder();
}
4

1 回答 1

1

如果最终目标是让您知道从根目录到文件夹的路径,有几种方法可以解决这个问题:

选项1:

在您的应用程序获取它们时维护您自己的 folder_ids 和 folder_names 映射。据推测,为了获得 currentBoxFolder 的 id,您必须事先对其所有父母进行 getAccountTree() 调用。因此,如果是这种情况,您可以维护 2 张地图:

文件夹 ID => 父文件夹 ID

文件夹 ID => 文件夹名称

从这两张地图中,您应该始终能够从根中获取路径。

选项 2:

有 2 个参数可以添加到 Box.getAccountTree() 方法中,让您知道路径:

“show_path_ids”

“show_path_names”

这些参数尚未记录(我们会这样做),但它们会导致 BoxFolder.getFolderPathIds() 和 BoxFolder.getFolderPath() 返回值,例如:

“/5435/4363”

“/蓝色文件夹/绿色文件夹”

于 2013-02-23T00:14:05.890 回答