Java 到根文件夹的最快/最短路径?
我正在Android上使用Google Drive SDK v2获取根文件夹列表。目前,我看到了这些必要的步骤——它们似乎永远都在加载。没有更快的办法吗 我试着使用q=参数进行搜索,但是我没有让它工作(FileList和Files.List)-不同的API级别Java 到根文件夹的最快/最短路径?,java,android,google-drive-api,Java,Android,Google Drive Api,我正在Android上使用Google Drive SDK v2获取根文件夹列表。目前,我看到了这些必要的步骤——它们似乎永远都在加载。没有更快的办法吗 我试着使用q=参数进行搜索,但是我没有让它工作(FileList和Files.List)-不同的API级别 FileList files = drive.files().list().setQ("'root' in parents and mimeType='application/vnd.google-apps.folder' and tra
FileList files = drive.files().list().setQ("'root' in parents and mimeType='application/vnd.google-apps.folder' and trashed=false");
这就是我目前所做的:
About about = drive.about().get().execute();
if (about != null) {
ChildList childList = drive.children().list(about.getRootFolderId()).execute();
if (childList != null) {
List<ChildReference> listChildReference = childList.getItems();
for (ChildReference childReference : listChildReference) {
File file = drive.files().get(childReference.getId()).execute();
if (file != null) {
String fileExtension = file.getFileExtension();
String mimeType = file.getMimeType();
if (mimeType != null
&& mimeType.equals("application/vnd.google-apps.folder")
&& (fileExtension == null || fileExtension.equals(""))) {
Log.d(this.getClass().getName(), file.getTitle());
}
}
}
}
}
About=drive.About().get().execute();
如果(大约!=null){
ChildList ChildList=drive.children().list(about.getRootFolderId()).execute();
if(childList!=null){
List listChildReference=childList.getItems();
for(ChildReference ChildReference:listChildReference){
File File=drive.files().get(childReference.getId()).execute();
如果(文件!=null){
String fileExtension=file.getFileExtension();
字符串mimeType=file.getMimeType();
if(mimeType!=null
&&mimeType.equals(“application/vnd.google apps.folder”)
&&(fileExtension==null | | fileExtension.equals(“”)){
Log.d(this.getClass().getName(),file.getTitle());
}
}
}
}
}
Android应用程序最快的速度是多少
提前感谢。我个人的意见是避免使用驱动器SDK,直接调用REST API。这是一个相当简单的API,而且文档的结构方式,为了使用SDK,您必须理解它。您的好处是,如果某些东西不起作用,您可以直接将您的应用程序与网络上发生的情况进行比较,并解决任何问题。我个人的意见是避免使用驱动器SDK,直接调用REST API。这是一个相当简单的API,而且文档的结构方式,为了使用SDK,您必须理解它。您的好处是,如果某个应用程序不起作用,您可以直接将应用程序与网络上发生的情况进行比较,并解决任何问题。找到它:
@Override
protected ArrayList<File> doInBackground(final Void... voids) {
ArrayList<File> result = new ArrayList<File>();
Files.List request = null;
boolean ok = true;
do {
try {
request = drive
.files()
.list()
.setMaxResults(200)
.setQ("'root' in parents and mimeType='application/vnd.google-apps.folder' and trashed=false");
FileList files = request.execute();
result.addAll(files.getItems());
request.setPageToken(files.getNextPageToken());
} catch (IOException exception) {
ok = false;
}
} while (ok && request.getPageToken() != null && request.getPageToken().length() > 0);
return result;
}
@覆盖
受保护的ArrayList doInBackground(最终无效…无效){
ArrayList结果=新建ArrayList();
Files.List请求=null;
布尔ok=true;
做{
试一试{
请求=驱动器
.files()
.list()
.setMaxResults(200)
.setQ(“'root'位于父级和mimeType='application/vnd.google apps.folder'中,trashed=false”);
FileList files=request.execute();
result.addAll(files.getItems());
request.setPageToken(files.getNextPageToken());
}捕获(IOException异常){
ok=假;
}
}while(ok&&request.getPageToken()!=null&&request.getPageToken().length()>0);
返回结果;
}
找到它:
@Override
protected ArrayList<File> doInBackground(final Void... voids) {
ArrayList<File> result = new ArrayList<File>();
Files.List request = null;
boolean ok = true;
do {
try {
request = drive
.files()
.list()
.setMaxResults(200)
.setQ("'root' in parents and mimeType='application/vnd.google-apps.folder' and trashed=false");
FileList files = request.execute();
result.addAll(files.getItems());
request.setPageToken(files.getNextPageToken());
} catch (IOException exception) {
ok = false;
}
} while (ok && request.getPageToken() != null && request.getPageToken().length() > 0);
return result;
}
@覆盖
受保护的ArrayList doInBackground(最终无效…无效){
ArrayList结果=新建ArrayList();
Files.List请求=null;
布尔ok=true;
做{
试一试{
请求=驱动器
.files()
.list()
.setMaxResults(200)
.setQ(“'root'位于父级和mimeType='application/vnd.google apps.folder'中,trashed=false”);
FileList files=request.execute();
result.addAll(files.getItems());
request.setPageToken(files.getNextPageToken());
}捕获(IOException异常){
ok=假;
}
}while(ok&&request.getPageToken()!=null&&request.getPageToken().length()>0);
返回结果;
}
对不起,这是个错误的建议。使用驱动器API,它是驱动器SDK的一部分(或者这就是你的意思?)。虽然这是更多的代码行,(a)这是我的代码,所以如果它坏了,我可以很容易地修复它,(b)我的代码所做的事情和线路上发生的事情之间有直接的关系,所以如果有问题,很容易诊断和修复,(c)这是我堆栈中少了一层依赖关系。JavaAPI客户端被标记为beta版,每两个月更新一次。这不是生产代码的好方法。只是我的意见。对不起,这是个糟糕的建议。使用驱动器API,它是驱动器SDK的一部分(或者这就是你的意思?)。虽然这是更多的代码行,(a)这是我的代码,所以如果它坏了,我可以很容易地修复它,(b)我的代码所做的事情和线路上发生的事情之间有直接的关系,所以如果有问题,很容易诊断和修复,(c)这是我堆栈中少了一层依赖关系。JavaAPI客户端被标记为beta版,每两个月更新一次。这不是生产代码的好方法。只是我的意见。