すべてのファイルを再帰的に表示するにはどうすればいいですか?はDropBoxフォルダにありますか? 私は以下のコードを試みたが、何も結果を返しません:Android Dropbox APIのすべてのファイルを再帰的に一覧表示
result = dbxClient.files().search("", "*");
を、これはパス内のファイルではなく、サブフォルダを返します。
result = dbxClient.files().listFolder(path);
すべてのファイルを再帰的に表示するにはどうすればいいですか?はDropBoxフォルダにありますか? 私は以下のコードを試みたが、何も結果を返しません:Android Dropbox APIのすべてのファイルを再帰的に一覧表示
result = dbxClient.files().search("", "*");
を、これはパス内のファイルではなく、サブフォルダを返します。
result = dbxClient.files().listFolder(path);
あなたはlistFolderBuilder
からListFolderBuilder
を取得し、サブをリストするwithRecursive
オプションを使用することができます-itemsも同様です。
ListFolderResult.hasMore
にチェックを入れて、さらに結果を得るにはlistFolderContinue
に電話する必要があるかどうかを必ず確認してください。
このリンクをチェックすると、内部クラス 'FolderScanTask'に移動できます。 https://github.com/ControlX/Android-Dropbox-UploadImage-To-SpecificFolder-By-FolderSelection/blob/master/app/src/main/java/io/github/controlx/dbxdemo/MainActivity.java
これは現在進行中です。ここでは、親フォルダのArrayListを作成しています.Gregの提案するロジックがあります。既にそこに入力するだけです。同じのため
コードスニペット:私はちょうどのみフォルダのリストを作ってるんだここ
String path = "";
DbxClientV2 dbxClient = DropboxClient.getClient(ACCESS_TOKEN);
TreeMap<String, Metadata> children = new TreeMap<String, Metadata>();
try {
try {
result = dbxClient.files()
.listFolder(path);
} catch (ListFolderErrorException ex) {
ex.printStackTrace();
}
List<Metadata> list = result.getEntries();
cs = new CharSequence[list.size()];
arrayList = new ArrayList<>();
arrayList.add("/");
while (true) {
int i = 0;
for (Metadata md : result.getEntries()) {
if (md instanceof DeletedMetadata) {
children.remove(md.getPathLower());
} else {
String fileOrFolder = md.getPathLower();
children.put(fileOrFolder, md);
if(!fileOrFolder.contains("."))
arrayList.add(fileOrFolder);
}
i++;
}
if (!result.getHasMore()) break;
try {
result = dbxClient.files()
.listFolderContinue(result.getCursor());
} catch (ListFolderContinueErrorException ex) {
ex.printStackTrace();
}
}
} catch (DbxException e) {
e.printStackTrace();
} catch (Exception e) {
e.printStackTrace();
}
ここでArrayListのは、ちょうど私の使用のためのものです。 それに応じて変更してください。
['search'](https://dropbox.github.io/dropbox-sdk-java/api-docs/v2.1.x/com/dropbox/core/v2/files/DbxUserFilesRequests)に注意してください。 html#search-java.lang.String-java.lang.String-)はそのようなワイルドカードをサポートしていません。あなたはこれにもかかわらず、リストフォルダの機能を使用する必要があります。 – Greg