Как скопировать Google Do c в другую папку в сервисе Google Drive - PullRequest
1 голос
/ 28 февраля 2020

У меня есть класс, который делает копию файла шаблона google do c для объединения заполнителей с данными. Проблема в том, что он создает копию в той же папке, что и исходный файл шаблона, и я не могу найти способ скопировать ее в другую папку.

Скажем, у меня есть такая структура в google drive.

Main
    TemplateFiles
        MainTemplateDoc
    Contracts
        CopyOfMainTemplateDocAfterBeingMerged

Как видите, CopyOfMainTemplateDocAfterBeingMerged do c не будет находиться в папке TemplateFiles, где находился исходный шаблон, но будет скопирован в папку Contracts.

Возможно ли это использовать сервис google drive v2 для перемещения файла после создания копии? Я использую пакет Nuget. net Google.Apis.Drive.v2. Вот код, который у меня есть для создания копии.

private string CopyDocument(string documentId, string title)
{
    var newFile = new File { Title = title };
    var documentCopyFile = driveService.Files.Copy(newFile, documentId).Execute();
    return documentCopyFile.Id;
}

1 Ответ

1 голос
/ 01 марта 2020
  • Вы используете Drive API v2.
  • Вы хотите скопировать файл в папку Contracts.
  • Вы уже можете использовать Drive API.

Если мое понимание верно, как насчет этого ответа? Пожалуйста, подумайте об этом как об одном из нескольких возможных ответов.

В этом ответе я хотел бы предложить следующую модификацию.

От:

var newFile = new File { Title = title };

Кому:

var newFile = new File {
    Title = title,
    Parents = new List<ParentReference> {new ParentReference {Id = parentId}}
};

или

var newFile = new File() {
    Title = title
};
newFile.Parents = new List<ParentReference>() {new ParentReference() {Id = parentId}};

или

var newFile = new File();
newFile.Title = title;
newFile.Parents = new List<ParentReference>() {new ParentReference() {Id = parentId}};
  • parentId - это идентификатор папки Contracts.

Примечание:

  • Если вы хотите использовать Drive API v3, используйте new List<string> {folderId} вместо new List<ParentReference> {new ParentReference {Id = folderId}}.

Ссылки:

Если я неправильно понял ваш вопрос, и это было не то направление Вы хотите, я прошу прощения.

...