发送到 google.api.services.drive.model.File?-6ren"> 发送到 google.api.services.drive.model.File?-我处于初学者水平,在使用具有不同参数和返回类型的方法时遇到困难。 我创建了一种将文件上传到 Google 云端硬盘的方法(通过 Drive REST API)和另一种搜索 Google 云端硬盘文件夹-6ren">
gpt4 book ai didi

java - 如何将 "convert"任务 <> 发送到 google.api.services.drive.model.File?

转载 作者:行者123 更新时间:2023-12-02 05:11:56 26 4
gpt4 key购买 nike

我处于初学者水平,在使用具有不同参数和返回类型的方法时遇到困难。

我创建了一种将文件上传到 Google 云端硬盘的方法(通过 Drive REST API)和另一种搜索 Google 云端硬盘文件夹的方法。问题是搜索文件夹方法的返回类型是任务<*>,我希望将找到的文件夹作为参数发送到上传文件方法,只是参数类型是com.google.api。 services.drive.model.File 和 AbstractInputStreamContent。

我应该如何将任务<*>对象“转换”为文件?

以下是搜索文件夹和上传文件的方法:

public Task<GoogleDriveFileHolder> searchFolder(String folderName) {
return Tasks.call(mExecutor, () -> {
// Retrive the metadata as a File object.
FileList result = mDriveService.files().list()
.setQ("mimeType = '" + "application/vnd.google-apps.folder" + "' and name = '" + folderName + "' ")
.setSpaces("drive")
.execute();
GoogleDriveFileHolder googleDriveFileHolder = new GoogleDriveFileHolder();
if (result.getFiles().size() > 0) {
googleDriveFileHolder.setId(result.getFiles().get(0).getId());
googleDriveFileHolder.setName(result.getFiles().get(0).getName());
}
return googleDriveFileHolder;
});
}

public Task<GoogleDriveFileHolder> uploadFile(File googleDiveFile, AbstractInputStreamContent content) {
return Tasks.call(mExecutor, () -> {
// Retrieve the metadata as a File object.
File fileMeta = mDriveService.files().create(googleDiveFile, content).execute();
GoogleDriveFileHolder googleDriveFileHolder = new GoogleDriveFileHolder();
googleDriveFileHolder.setId(fileMeta.getId());
googleDriveFileHolder.setName(fileMeta.getName());
return googleDriveFileHolder;
});
}

最佳答案

您没有“转换”它。任务有点像执行器:它们做后台工作。

您可以添加监听器来检索结果:

searchFolder("my folder")
.addOnSuccessListener(...your listener...)
.addOnFailureListener(...your other listener...);

或者您可以在自己的后台执行器中同步执行任务:

 Executors.newSingleThreadExecutor().execute(new Runnable() {
@Override
public void run() {
FileList result = myDriveService.files().list().
... .execute();
//do something with your result
}
});

在这种情况下,您需要自己在 Runnable 中捕获 IOException

关于java - 如何将 "convert"任务 <> 发送到 google.api.services.drive.model.File?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56321177/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com