Переместить файлы в Google скрипт

1

Я использую функцию MoveFiles() для копирования файла в другую папку. Но когда я его запускал, я пытаюсь удалить файл в исходной папке. После его удаления я увидел, что файл, который я переместил, также удален. Как сделать файл, который я переместил, также не будет удален? Tqvm

function MoveFiles() {
var SourceFolder = DriveApp.getFolderById('1WIZxuF_r9I-510Kfw9N0AImcS1Uf63dC');
var SourceFiles = DriveApp.getFolderById('1QfFl5JIfOYaTXZyFpuBNSMzBdBrXLll9').getFiles();
 var DestFolder = DriveApp.getFolderById('1_03PnkJlt6mTo5bAExUMOdZVVkzMAUsA');

while (SourceFiles.hasNext()) {
 var file = SourceFiles.next();
 DestFolder.addFile(file);
 SourceFolder.removeFile(file);
 }
}
Теги:
file-upload
google-drive-sdk

1 ответ

0

Попробуйте переключить строку кода для удаления и добавления. Согласно этой связанной должности:

Я обнаружил, что мне нужно отменить последние две строки (так что removeFile выполняется в первую очередь), иначе removeFile просто удаляет его из папки, в которую он был добавлен, а не из исходного родителя.

Я протестировал его и получил правильный результат, вот мой фрагмент кода:

function myFunction() {
  var folder = DriveApp.getFolderById('sourceID');
  var destinationFolder = "destinationID";
  var contents = folder.getFiles();

  while (contents.hasNext()){
    var file = contents.next();
    moveFiles(file.getId(),destinationFolder);
  }


}

function moveFiles(sourceFileId, targetFolderId) {
  var file = DriveApp.getFileById(sourceFileId);
  file.getParents().next().removeFile(file);
  DriveApp.getFolderById(targetFolderId).addFile(file);
}

Надеюсь это поможет.

  • 0
    спасибо, это действительно помогает. могу я кое-что спросить? как использовать имя папки вместо идентификатора папки? я знаю, что нужно использовать getfolderbyname, но как это реализовать? извините за вопрос нуб
  • 0
    на самом деле я хочу скопировать файл, и я удалил removeFile (файл). и копия сработала успешно. но когда я попытался удалить файл в исходной папке, скопированный файл в другой папке также удалился. как избежать этого, сэр? tqvm

Ещё вопросы

Сообщество Overcoder
Наверх
Меню