使用Android Api,如何检索整个文件路径?

时间:2013-02-22 17:08:55

标签: box-api

给定一个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();
}

1 个答案:

答案 0 :(得分:1)

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

选项1:

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

文件夹ID =&gt;父文件夹ID

文件夹ID =&gt;文件夹名称

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

选项2:

可以将2个参数添加到Box.getAccountTree()方法中,以便您了解路径:

“show_path_ids”

“show_path_names”

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

“/4363分之5435”

“/ blue folder / green folder”