#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 — это название города и, следовательно, название папки, в которую он должен быть перемещен.