私のFTPアカウントのすべてのフォルダとサブフォルダを再帰的にリストしようとしています。 関数ftpPrintDirsListは、フォルダ内のフォルダの配列リストを返します。 私は、このフォルダを使用している場合: /B/C/B/D/E/F/G /、/ F/G/H、/ F/G /私はAndroidリストすべてのftpフォルダとサブフォルダ
私が必要a/b、a/b/c、a/b/d、a/b/d/e、a/f、a/f/g、a/f/gのような配列リストを得る/ H、/ 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メソッド内にありますか? – Thomas
実際には、これはコード全体です。再帰によって、私はfassDにすべてのフォルダを追加した後、ループは新しいフォルダ – DanM
で再度実行されますが、inner.size時間内側にfassD – kingston