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