2012-06-29 3 views
9

v2 Google Drive SDK으로 약간 혼란 스럽습니다.Google 드라이브 SDK V2를 사용하여 폴더 및 파일 열거하기

파일과 폴더에 대한 정보를 검색하는 방법은 두 가지가있는 것처럼 보입니다.

files.listchildren.list

내가 특정 폴더에있는 파일로 내 검색 범위를 좁힐 수있을 것 같다하지만 children.list를 사용하여 그러한 ID로 매우 기본적인 파일 정보를 반환하지 않습니다 files.list 사용. 파일 이름이 없습니다.

어린이 목록을 검색 한 다음 각 어린이가 매우 비효율적 인 파일 이름을 찾기 위해 요청을 수행해야하는 것처럼 보입니다.

Google 드라이브를 사용하여 폴더 및 해당 콘텐츠를 열거하는 일반적인 방법은 무엇입니까?

답변

2

대체 방법에 대한 메타 데이터 (적어도 파일명)을 반환하면 부모 제한하는 쿼리 식의 files.list 사용하는 것이다.

q='id-of-parent' in parents 

이렇게하면 하위 컬렉션과 동일한 결과를 얻을 수 있지만 각 항목의 전체 메타 데이터가 제공됩니다.

FileList folders=service.files().list().setQ("mimeType='application/vnd.google-apps.folder'").execute(); 
for(File fl: folders.getItems()){ 
    Log.v(TAG+" fOLDER name:",fl.getTitle()); 
} 
+0

감사합니다. 나는 이것을 시도 할 것이다. – Kuffs

2

업데이트 -

이 이제 files.list으로 달성 될 수있다. 파일 또는 폴더의 parents을 테스트하는 쿼리와 함께 q 매개 변수를 전달할 수 있습니다. -

네,이 올바른지 https://developers.google.com/drive/search-parameters

원래 대답 : 여기에 검색 매개 변수와 옵션 및 예제

q='MYFOLDERID' in parents 

더. 우리는이 기능을 향상시키기 위해 노력하고 있습니다. 그러나 불행히도 지금 당장 붙어 있습니다. - 죄송합니다.

모든 파일과 폴더를 열거하는 경우 더 나은 해결책은 평면 목록을 얻고 파일의 parents 배열을 사용하여 계층을 생성하는 것입니다.

+6

감사 : – Kuffs

1

당신이 당신의 드라이브 사용에있는 모든 폴더를 얻고 싶다면

. SDK가 더 성숙해질 때까지 현재 GDrive 통합 계획을 취소 할 것입니다. 전체 드라이브 구조를 다운로드하고 캐시하는 데 필요한 대역폭은 모바일 장치에서 딜 브레이커입니다. 이 문제에 대한 의견이 있으시면 드라이브를 파일 시스템으로 취급 할 수있는 경량 (최소 종속성) Android SDK를 출시하십시오. 즉, 파일 \ 폴더를 열거하고, 삭제하고, 업로드하고, 다운로드하십시오. 현재 SDK는 사용하기가 어렵습니다. Dropbox를 대체하고 싶지만 SDK가 현재로서는 더 나은 방법이며, 필요한 작업을 수행 할 수 있습니다.
관련 문제