Java 将所有文件从本地目录上载到Google Drive(Google Drive API V3)

Java 将所有文件从本地目录上载到Google Drive(Google Drive API V3),java,google-api,google-drive-api,Java,Google Api,Google Drive Api,我正在尝试让程序将本地目录中指定文件路径中的所有文件上载到Google Drive。在下载文件夹中的所有文件时,我实现了相反的效果,我想我会坚持同样的方法,首先列出本地目录中的所有文件,然后在列出每个文件时逐个上载它们 这段代码列出了指定文件路径中的所有文件名 private static File uploadFile(Drive service, String originfolder) { java.io.File dir = new java.io.File(origin

我正在尝试让程序将本地目录中指定文件路径中的所有文件上载到Google Drive。在下载文件夹中的所有文件时,我实现了相反的效果,我想我会坚持同样的方法,首先列出本地目录中的所有文件,然后在列出每个文件时逐个上载它们

这段代码列出了指定文件路径中的所有文件名

private static File uploadFile(Drive service, String originfolder) {
        java.io.File dir = new java.io.File(originfolder);
        String [] fileslist = dir.list();
        for (String file : fileslist) {
            System.out.println(file);
我知道上传单个文件的代码如下

File fileMetadata = new File();
fileMetadata.setName("photo.jpg");
java.io.File filePath = new java.io.File("files/photo.jpg");
FileContent mediaContent = new FileContent("image/jpeg", filePath);
File file = driveService.files().create(fileMetadata, mediaContent)
    .setFields("id")
    .execute();
System.out.println("File ID: " + file.getId());

尝试在以下代码段中合并这两个结果:

private static File uploadFile(Drive service, String originfolder) {
        java.io.File dir = new java.io.File(originfolder);
        String [] fileslist = dir.list();
        for (String file : fileslist) {
            System.out.println(file);
            File uploadfile = new File();
            uploadfile.setName(originfolder);
            FileContent mediaContent = new FileContent("image/jpeg", originfolder);
            File uploadedfile = service.files().create(uploadfile, mediaContent)
                .setFields("id")
                .execute();
            System.out.println("File ID: " + file);
        }
    }
我从cmd得到的错误是

 error: incompatible types: String cannot be converted to File
                        FileContent mediaContent = new FileContent("image/jpeg", originfolder);
计划的目的是将以下文件层次结构的全部内容上载到Google Drive,同时保持相同的文件名和mimetype

日志(文件夹)

---垃圾箱(文件夹)

------大约1 GB的.bin文件

---2个xml文件解决了这个问题

对于任何想知道的人来说,代码最终都是这样的

private static void uploadFile(Drive service, String originfolder) {
        try {
            java.io.File dir = new java.io.File(originfolder);
            String [] fileslist = dir.list();
            for (String file : fileslist) {
                System.out.println(file);
                File uploadfile = new File();
                uploadfile.setName(file);
                java.io.File filePath = new java.io.File(originfolder + file);
                FileContent mediaContent = new FileContent("image/jpeg", filePath);
                File uploadedfile = service.files().create(uploadfile, mediaContent)
                    .setFields("id")
                    .execute();
                System.out.println("File ID: " + file);
            }
        } catch (IOException e) {
            System.out.println("An error occurred: " + e);
        }
    }

是因为service.files().create(uploadfile,mediaContent).setFields(“id”).execute()返回字符串而不是文件吗?不完全是这样。字符串originfolder和字符串[]fileslist=dir.list();都是字符串类型。它们需要某种程度上是文件类型,以便与上载代码兼容。至少我是这么想的。不完全确定