Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/341.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 到根文件夹的最快/最短路径?_Java_Android_Google Drive Api - Fatal编程技术网

Java 到根文件夹的最快/最短路径?

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

我正在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 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版,每两个月更新一次。这不是生产代码的好方法。只是我的意见。