java - 将多个文件上传到 Google 云端硬盘?

标签 java android

这里我尝试在 Google 云端硬盘应用文件夹上上传多个文件:

@Override
protected Boolean doInBackground(DriveFile...params) {

    Drive.DriveApi.requestSync(mGoogleApiClient).await();

    DriveFile file = params[0];
    try {
        DriveApi.DriveContentsResult driveContentsResult = file.open(
            mGoogleApiClient, DriveFile.MODE_WRITE_ONLY, null).await();
        if (!driveContentsResult.getStatus().isSuccess()) {
            return false;
        }
        DriveContents driveContents = driveContentsResult.getDriveContents();

        FileInputStream fileInputStream = null;
        try {

            fileInputStream = new FileInputStream(DbHelper.databasePath);
        } catch (FileNotFoundException e) {
            e.printStackTrace();
        }
        BufferedInputStream bufferedInputStream = new BufferedInputStream(fileInputStream);

        BufferedOutputStream bufferedOutputStream = new BufferedOutputStream(driveContents.getOutputStream());

        /*reading and writing data to and from file*/
        int n = 0;
        byte[] data = new byte[8 * 1024];
        try {
            while ((n = bufferedInputStream.read(data)) > 0) {

                bufferedOutputStream.write(data, 0, n);
            }

            bufferedOutputStream.flush();
            bufferedOutputStream.close();

        } catch (Exception e) {
            e.printStackTrace();
        }


        com.google.android.gms.common.api.Status status =
            driveContents.commit(mGoogleApiClient, null).await();
        return status.getStatus().isSuccess();
    }
    return false;
}

尝试上传两个文件时,doInBackground 方法仅被调用一次,并且仅上传一个文件,该文件位于文件数组列表中的最后一个。

最佳答案

您需要发布调用 doInBackground 的完整代码。问题在于那部分代码。

 backupBtn.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {

            createFolderOnGoogleDrive();
            multipleFilesArrayList = listFilePath();
            createFileAsyncTask = new CreateFileAsyncTask();
            multipleFilestoAsynchTask = multipleFilesArrayList.get(i);
            createFileAsyncTask.execute(multipleFilesArrayList);

        });          }

关于java - 将多个文件上传到 Google 云端硬盘?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41647368/

相关文章:

android - 可选双人房

java - Android - 具有嵌套信息和数组的 GenericJson

Android SDK 找不到 JDK

android - Firebase/Crashlytics 仪表板未显示任何 Android 测试崩溃

java - 成功认证后 Spring 安全性未命中 default-target-url

java - 替换嵌套开关/ifelse 的设计模式

java - 闭包编译器不会关闭可疑代码警告

java - 在 xpath 中指定多个条件

Java 9 : ServiceLoader doesn't load Test implementation from Test sources (Module)

android - 获取包含 Bitmap-backed Canvas 的 Android View 上的点的像素颜色值