Google Apps Script предоставляет мощные инструменты для автоматизации работы с Google Drive. Одной из распространенных задач является получение метаданных файлов, включая дату их создания. В этой статье мы подробно рассмотрим, как получить дату создания файла в Google Apps Script, используя Drive API.
Зачем нужно знать дату создания файла?
Знание даты создания файла может быть полезно во многих сценариях:
Автоматическая архивация старых файлов: Например, перемещение файлов, созданных более года назад, в архивную папку.
Анализ данных: Определение временных трендов в создании файлов.
Отчетность: Создание отчетов о файлах, сгруппированных по дате создания.
Управление версиями: Для отслеживания и управления старыми версиями документов.
Обзор методов работы с файлами в Google Apps Script
Google Apps Script предлагает несколько способов работы с файлами в Google Drive. Мы будем использовать Drive API, который предоставляет наиболее полный доступ к метаданным файла. Другие методы, такие как DriveApp, могут быть менее эффективными для получения даты создания, особенно если нужно работать с большим количеством файлов.
Использование Drive API для получения метаданных файла
Включение Drive API в проекте Google Apps Script
Прежде чем начать использовать Drive API, необходимо включить его в вашем проекте Google Apps Script:
Откройте проект Google Apps Script.
Выберите Сервисы (Services) в левой панели.
Найдите Drive API и включите его.
Нажмите Добавить (Add).
Получение объекта файла с помощью ID
Для получения метаданных файла нам потребуется его ID. ID файла можно найти в URL файла в Google Drive. Например, в URL https://drive.google.com/file/d/FILE_ID/edit FILE_ID – это идентификатор файла.
Извлечение даты создания (createdDate) из метаданных
После включения Drive API и получения ID файла, мы можем получить объект файла и извлечь дату создания:
Преобразование даты в удобочитаемый формат
Дата создания, полученная из Drive API, будет в формате ISO 8601. Для удобства использования ее можно преобразовать в более привычный формат.
Пример кода: Получение даты создания файла
Полный код скрипта для получения даты создания
/**
* Получает дату создания файла по его ID.
*
* @param {string} fileId ID файла в Google Drive.
* @return {string} Дата создания файла в формате YYYY-MM-DD HH:mm:ss, или null, если файл не найден.
*/
function getFileCreationDate(fileId: string): string | null {
try {
// Получаем объект файла используя Drive API.
const file = Drive.Files.get(fileId);
// Извлекаем дату создания файла.
const creationDate: string = file.createdDate;
// Преобразуем дату в удобочитаемый формат.
const formattedDate: string = Utilities.formatDate(new Date(creationDate), Session.getTimeZone(), "yyyy-MM-dd HH:mm:ss");
return formattedDate;
} catch (e) {
// Обрабатываем ошибки, например, если файл не найден или API не включен.
console.error("Ошибка при получении даты создания файла: " + e);
return null;
}
}
// Пример использования
function testGetFileCreationDate() {
const fileId: string = "YOUR_FILE_ID"; // Замените на ID вашего файла
const creationDate: string | null = getFileCreationDate(fileId);
if (creationDate) {
Logger.log("Дата создания файла: " + creationDate);
} else {
Logger.log("Не удалось получить дату создания файла.");
}
}
Объяснение работы кода построчно
function getFileCreationDate(fileId: string): string | null { – Объявление функции getFileCreationDate, которая принимает fileId (string) и возвращает дату (string) или null в случае ошибки.
const file = Drive.Files.get(fileId); – Получаем объект файла с помощью Drive API, используя переданный ID.
const creationDate: string = file.createdDate; – Извлекаем дату создания из объекта файла. Дата хранится в формате ISO 8601.
const formattedDate: string = Utilities.formatDate(new Date(creationDate), Session.getTimeZone(), "yyyy-MM-dd HH:mm:ss"); – Преобразуем дату в удобочитаемый формат, используя сервис Utilities.formatDate. Указываем часовой пояс и формат даты.
return formattedDate; – Возвращаем отформатированную дату.
try...catch – Блок try...catch используется для обработки ошибок. Если файл не найден или API не включен, в консоль будет выведено сообщение об ошибке.
Обработка ошибок и исключений (файл не найден, API не включен)
В блоке catch мы обрабатываем возможные ошибки. Важно предусмотреть обработку следующих ситуаций:
Файл не найден: Проверьте правильность ID файла.
Drive API не включен: Убедитесь, что Drive API включен в проекте Google Apps Script.
Отсутствие прав доступа: У пользователя, от имени которого выполняется скрипт, должны быть права на чтение файла.
Альтернативные подходы и решения
Использование сервиса `Utilities.formatDate()` для форматирования даты
Сервис Utilities.formatDate() предоставляет широкие возможности для форматирования даты. Вы можете настроить формат даты в соответствии со своими потребностями. Например, можно изменить порядок отображения года, месяца и дня, добавить название месяца или использовать 12-часовой формат времени.
Получение даты создания для нескольких файлов (цикл)
Если вам нужно получить дату создания для нескольких файлов, можно использовать цикл for или forEach:
function getMultipleFileCreationDates(fileIds: string[]): object {
const fileDates: object = {};
fileIds.forEach(fileId => {
const creationDate: string | null = getFileCreationDate(fileId);
if (creationDate) {
fileDates[fileId] = creationDate;
} else {
fileDates[fileId] = "Не удалось получить дату";
}
});
return fileDates;
}
// Пример использования
function testGetMultipleFileCreationDates() {
const fileIds: string[] = ["FILE_ID_1", "FILE_ID_2", "FILE_ID_3"]; // Замените на ID ваших файлов
const fileDates: object = getMultipleFileCreationDates(fileIds);
Logger.log(fileDates);
}
Сохранение полученной даты в Google Sheets
Полученную дату создания файла можно сохранить в Google Sheets для дальнейшего анализа или отчетности. Для этого можно использовать сервис SpreadsheetApp.
Заключение
Краткое описание изученных методов
В этой статье мы рассмотрели, как получить дату создания файла в Google Apps Script, используя Drive API. Мы изучили процесс включения Drive API, получения объекта файла по ID, извлечения даты создания и ее преобразования в удобочитаемый формат. Также мы рассмотрели альтернативные подходы и решения, такие как форматирование даты и получение даты создания для нескольких файлов.
Рекомендации по использованию полученных знаний
Используйте полученные знания для автоматизации задач, связанных с обработкой файлов в Google Drive. Не забывайте обрабатывать ошибки и исключения, чтобы ваш скрипт работал стабильно и надежно.