Как переместить PDF-файлы из родительской папки во вложенную папку с тем же именем, что и файл

#javascript #pdf #drive

#javascript #PDF #диск

Вопрос:

Я работаю над проектом, который отправляет PDF-файлы с веб-сайта WordPress на Google Диск. Файлы представляют собой PDF-файлы людей, которые зарегистрировались на определенные мероприятия, которые проводятся в определенных городах. Все эти PDF-файлы отправляются в родительскую папку «регистрации». Чего мне нужно добиться, так это автоматической отправки этих PDF-файлов во вложенные папки, такие как Амстердам, Роттердам, Верден, Вестланд и т.д.

Все PDF-файлы отправляются в родительскую папку «регистрации». Чего мне нужно добиться, так это автоматической отправки этих PDF-файлов во вложенные папки, такие как Амстердам, Роттердам. Имена PDF-файлов — это названия городов (например, Амстердам).

В заключение, вопрос в основном таков: как я мог бы добиться отправки файла с именем Amsterdam во вложенную папку с именем Amsterdam, а файла с именем Rotterdam в папку с именем Rotterdam?

РЕДАКТИРОВАТЬ: я работаю над сценарием, но он еще не завершен. Приведенный ниже скрипт выполняет поиск файлов в родительской папке, в названии которой указано «woerden». Затем эти файлы перемещаются в папку с именем «woerden». Это работает, но проблема в том, что мне придется создать около 300 различных сценариев, чтобы иметь возможность автоматизировать весь процесс. Поэтому мне интересно, возможно ли сделать этот скрипт более динамичным. Например, если файл с именем, содержащим -woerden, отправляется в папку с именем woerden, а если файл с именем, содержащим -westland, он будет отправлен в папку с именем westland.

     function SearchFiles() {

  // Parent folder
  var parentFolder = DriveApp.getFolderById('15azR1-Fic_F_wPZHzXWKblIyxBB_GVsW'); //parent folder which will be scanned for duplicates

  // Log the name of every file in the user's Drive whose name contains "westland".
var files = DriveApp.searchFiles(
    'title contains "westland"');
while (files.hasNext()) {
  var file = files.next();

  // Remove the file from all parent folders
  var parents = file.getParents();
  while (parents.hasNext()) {
    var parent = parents.next();
    parent.removeFile(file);
  }
  DriveApp.getFolderById('1mSW3-uqv_F1m-TfLa_JyGRVK9-sGJYTj').addFile(file);
}

}
  

Я надеюсь, что я четко задал свой вопрос. Пожалуйста, дайте мне знать, если вам понадобится дополнительная информация.

Приветствия,

Комментарии:

1. Можете ли вы предоставить свой текущий скрипт? В вашей ситуации требуется использовать Drive API. Итак, из вашего скрипта я хотел бы подтвердить метод использования Drive API.

2. Большое спасибо за ваш ответ! Я работаю над сценарием, но он очень далек от завершения. Пожалуйста, проверьте сценарий в отредактированном описании.

3. Спасибо за ответ и дополнительную информацию. Из вашей дополнительной информации я мог понять, что вы хотите переместить файл в папку с тем же именем, что и файл, и количество файлов равно 300. Я не могу понять шаблоны имен файлов, таких как -woerden- и -westland- . Можете ли вы предоставить все шаблоны имен файлов и папок, которые вы хотите использовать? Я подумал, что, поскольку ваш скрипт использует 'title contains "westland"' для поиска файлов, требуется знать все имена. Если я неправильно понял вашу ситуацию, я приношу извинения.

4. Кстати, вы хотите достичь своей цели с помощью Google Apps Script. Правильно ли я понимаю?

5. Да, я действительно использую Google Apps Script. Надеюсь, это возможно! Чтобы ответить на ваш вопрос: в родительскую папку будут отправлены сотни файлов, и их нужно разделить примерно на 300 дочерних папок. Имена файлов, например: Willem de Vries — Woerden — 15-09-2019, где — Woerden — это название города и, следовательно, название папки, в которую он должен быть перемещен.