Как узнать дату создания файла в Google Apps Script?

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. Не забывайте обрабатывать ошибки и исключения, чтобы ваш скрипт работал стабильно и надежно.

Полезные ресурсы и ссылки (документация Drive API)

Документация Drive API


Добавить комментарий