2016-11-12 4 views
0

Dropbox API를 사용하여 처음으로 작은 데모 응용 프로그램을 설치하고 App 폴더 내의 하위 폴더 내용을 볼 수 없습니다. 설정 탭에서 볼 수 있습니다 : 권한 유형 : App 폴더 (이 응용 프로그램은 해당 폴더 내의 파일에만 읽기/쓰기 권한이 있습니다).Dropbox App 폴더 내의 하위 폴더 내용에 액세스 할 수 있습니까

내 폴더 구조는 다음과 같습니다

  • /앱/MyAppFolderName/폴더 1/Folder2 폴더/파일은 File3
  • /앱/MyAppFolderName/폴더 1 /있는 File2
  • /앱/MyAppFolderName /을 File1

내 코드는 수정하지 않고 C# 튜토리얼처럼 보입니다.

async Task ListRootFolder(DropboxClient dbx) 
{ 
    var list = await dbx.Files.ListFolderAsync(string.Empty); 

    // show folders then files 
    foreach (var item in list.Entries.Where(i => i.IsFolder)) 
    { 
     Console.WriteLine("D {0}/", item.Name); 
    } 

    foreach (var item in list.Entries.Where(i => i.IsFile)) 
    { 
     Console.WriteLine("F{0,8} {1}", item.AsFile.Size, item.Name); 
    } 
} 

File1과 Folder1 만 출력합니다. 그것은 결코 File2 나 Folder2에 도달하지 않습니다 (또한, File3도 마찬가지입니다).

하위 폴더에 대한 액세스를 허용하지 않는다는 점에서 App 폴더 권한의 의미를 잘못 이해했거나 하위 폴더를 여는 API의 다른 부분을 호출해야합니까? list.Entries의 첫 번째 반복을 완료 한 후에 ListFolderContinueAsync(list.Cursor) 메서드를 사용하려고했지만 단순히 빈 열거자를 반환했습니다. 당신이 ListFolderAsync 방법에 하위 폴더의 이름을 전달하는 경우

답변

1

기본적으로 ListFolderAsync은 하위 폴더를 반환하지 않습니다. 하위 폴더 (모든 어린이)을 얻으려면, 당신은 예를 들어, ListFolderAsyncRecursive 매개 변수를 사용해야합니다

var list = await dbx.Files.ListFolderAsync(string.Empty, true); 

이 개별적으로 각 하위 폴더에 대한 ListFolderAsync를 호출 선호한다. 어느 경우

그래도 ListFolderAsync documentation

당, 당신이 HasMore을 확인하고 필요한 경우 ListFolderContinueAsync에 다시 전화 확인
0

당신은 하위 폴더의 내용을 액세스 할 수 있습니다

var list = await dbx.Files.ListFolderAsync(@"/Folder1/Folder2"); 

이름은 '/'로 시작해야합니다.