我想将图片上传到特定文件夹,如果该文件夹不存在,请创建该图片并将此文件夹共享为另一个电子邮件地址。 我使用以下代码:
MetadataChangeSet changeSetfile = new MetadataChangeSet.Builder()
.SetTitle("Test.jpg")
.SetMimeType("image/jpeg")
.Build();
MetadataChangeSet changeSetfolder = new MetadataChangeSet.Builder()
.SetTitle("New folder")
.SetMimeType(DriveFolder.MimeType)
.SetStarred(true)
.Build();
DriveClass.DriveApi
.GetRootFolder(_googleApiClient)
.CreateFolder(_googleApiClient, changeSetfile) ;
DriveClass.DriveApi
.GetRootFolder(_googleApiClient)
.CreateFile(_googleApiClient, changeSetfolder, contentResults.DriveContents);
答案 0 :(得分:0)
首先,您必须检查文件夹是否存在。根据本教程 - Search files on Google Drive with C#,您可以使用:
按文件名
- 如果您知道文件的名称或名称的一部分,您可以搜索名称。全文也很好,它允许您搜索“文件的全文,包括名称,描述,内容和可索引文本。”
仅列出文件目录
- 也可以只搜索一种类型的文件,说您只想退回帐户中的所有Google表格?如果您只是想找到所有文件夹,那么该文件夹是“application / vnd.google-apps.folder”的mimetype,这样我们就可以搜索到它。
检查它是否存在后,将ID放在parents
参数中:
var folderId = "0BwwA4oUTeiV1TGRPeTVjaWRDY1E";
var fileMetadata = new File()
{
Name = "photo.jpg",
Parents = new List<string>
{
folderId
}
};
FilesResource.CreateMediaUpload request;
using (var stream = new System.IO.FileStream("files/photo.jpg",
System.IO.FileMode.Open))
{
request = driveService.Files.Create(
fileMetadata, stream, "image/jpeg");
request.Fields = "id";
request.Upload();
}
var file = request.ResponseBody;
Console.WriteLine("File ID: " + file.Id);
希望这有帮助。