request.setQ(q);
request.setMaxResults(MAX_RESULTS);
do {
FileList files = request.execute();
final List<File> result = files.getItems();
// array('q' => q))
File _parentItem;
if (result.size() == 0) {
final File folder = new File();
folder.setTitle(name);
folder.setMimeType(FOLDER);
final ParentReference parentReference = new ParentReference();
parentReference.setId(parentItem.getId());
folder.setParents(Arrays.asList(parentReference));
_parentItem = service.files().insert(folder).execute();
if (_parentItem == null) {
throw new CloudsyncException("Could not create folder '" + name + "'");
}
} else if (result.size() == 1) {
_parentItem = result.get(0);
} else {
throw new CloudsyncException("base path '" + path + "' not unique");
}
if (!_parentItem.getMimeType().equals(FOLDER)) {
throw new CloudsyncException("No folder found at '" + path + "'");
}
_addToCache(_parentItem, parentItem);
parentItem = _parentItem;
request.setPageToken(files.getNextPageToken());
} while (request.getPageToken() != null && request.getPageToken().length() > 0);
}
}
return parentItem;
} catch (final IOException e) {