gpt4 book ai didi

java - Android列出所有ftp文件夹和子文件夹

转载 作者:行者123 更新时间:2023-12-01 15:33:02 26 4
gpt4 key购买 nike

我正在尝试以递归方式列出我的 ftp 帐户中的所有文件夹和子文件夹。函数 ftpPrintDirsList 返回文件夹中文件夹的数组列表。如果我有这个文件夹:a/b/c、a/b/d/e、a/f/g/、a/f/g/h、a/f/g/i

我需要获取如下所示的数组列表:a、a/b、a/b/c、a/b/d、a/b/d/e、a/f、a/f/g、 a/f/g/h、a/f/g/i(顺序不一定是这样,但我需要查看所有文件夹)

到目前为止我被困在这里:

    ArrayList<String> fassD = ftpPrintDirsList("/FlashAssets");
ArrayList<String> inner = null;

for (int i = 0; i < fassD.size(); i++) //for each subfolder in FlashAssets
{
inner = ftpPrintDirsList("/FlashAssets/"+fassD.get(i)); //list all subfolders

for (int j = 0; j < inner.size(); j++)
{
inner.set(j, fassD.get(i)+"/"+inner.get(j));
fassD.addAll(inner);
}

}
Log.d(TAG, "Final: "+fassD);

但是我遇到了无限循环,有人可以帮助我吗?预先感谢您。

最佳答案

这是一个递归方法,假设 ftpPrintDirsList 执行其描述的操作。对于每个文件夹,它将自身添加到列表中,然后调用所有子文件夹的方法。当没有子文件夹时,它将自身添加到列表中然后返回。这将为您提供文件的深度优先排序。/a/b/c 出现在 a/c 之前

public ArrayList<String> getFolders(String foldername)
{
ArrayList<String> retval = new ArrayList<String>();
retval.add(foldername);
ArrayList<String> subfolders = ftpPrintDirsList(foldername);
for (String folder : subfolders)
retval.addall(getFolders(foldername + folder));
return retval;
}

关于java - Android列出所有ftp文件夹和子文件夹,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9333776/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com