フォルダ ID を指定しても、MIME タイプを指定しても、Google ドライブはフォルダ内のファイルを一覧表示しません。クエリが空のルート フォルダー内のファイルに対して機能します。フォルダ内のファイルを一覧表示するにはどうすればよいですか?
コード:
public ArrayList<String> getDriveList(String folder, String folderId) throws IOException {
// Create a new authorized API client
HttpTransport httpTransport = new NetHttpTransport();
JsonFactory jsonFactory = new JacksonFactory();
Credential credential = Utils.getCredential();
Drive service = new Drive.Builder(httpTransport, jsonFactory, credential)
.setApplicationName("SDM Mailer App")
.build();
ArrayList<File> result = new ArrayList<File>();
// String query = "";
String query = "'"+folderId+"' in parents";
// String query = "mimeType = 'application/vnd.ms-excel'";
// String query = "'"+folderId+"' in parents and mimeType = 'application/vnd.ms-excel'";
log.info("Finding files with query: " + query);
Drive.Files.List request = service.files().list().setQ(query);
do {
try {
FileList files = request.execute();
result.addAll(files.getItems());
request.setPageToken(files.getNextPageToken());
} catch (IOException e) {
System.err.println("An error occurred: " + e);
request.setPageToken(null);
}
} while (request.getPageToken() != null &&
request.getPageToken().length() > 0);
log.info("Found # results: " + result.size());
ArrayList<String> resultPlain = new ArrayList<String>();
for (File f: result) {
resultPlain.add(f.getTitle());
}
return resultPlain;
} // driveList
ログ:
INFO: Finding files with query: '0B72jLeZWY3rsQllNMWhCQWhtLWc' in parents
Oct 04, 2013 8:50:42 PM com.example.server.SDMServiceImpl getDriveList
INFO: Found # results: 0
または空のクエリの場合、ルートフォルダー:
INFO: Finding files with query:
Oct 04, 2013 9:20:05 PM com.example.server.SDMServiceImpl getDriveList
INFO: Found # results: 2
ドライブ ファイル:
参考資料:
https://google-developers.appspot.com/drive/search-parameters
瓶:
google-api-services-drive-v2-rev102-1.16.0-rc.jar