我正在尝试让程序将本地目录中指定文件路径中的所有文件上传到Google云端硬盘。通过下载文件夹中的所有文件完成了相反的工作,我认为我会坚持使用相同的方法,首先在本地目录中列出所有文件,然后在列出每个文件时逐个上传。
此代码始终列出指定文件路径中文件的所有名称
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());
从here看到的
尝试在以下代码段中将这两个结果结合起来:
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云端硬盘,同时保持相同的文件名和mimetype。
日志(文件夹)。
--- bin(文件夹)
------大约1 GB的.bin文件
--- 2个xml文件
答案 0 :(得分:1)
解决了
对于任何想知道的人,代码最终都看起来像这样
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);
}
}