Изучение различных методов получения списка размеров файлов в папке Google Диска и экспорта в лист Excel с помощью Google Script

Управление файлами и их размерами в папке Google Диска может стать сложной задачей, особенно при работе с большими объемами данных. В этой статье блога мы рассмотрим несколько способов получения списка размеров файлов из папки Google Диска с помощью Google Script, а затем сохранения данных в лист Excel. Мы рассмотрим каждый метод, предоставив разговорные объяснения и примеры кода, которые помогут вам понять и эффективно их реализовать.

Метод 1. Использование службы DriveApp
Служба DriveApp в скрипте Google Apps позволяет нам получать доступ к файлам на Google Диске и манипулировать ими. Мы можем перебирать файлы в папке, получать их размеры и сохранять данные в листе Excel. Вот пример фрагмента кода:

function listFilesAndSizes() {
  var folder = DriveApp.getFolderById('YOUR_FOLDER_ID');
  var files = folder.getFiles();
  var data = [['File Name', 'File Size (bytes)']];
  while (files.hasNext()) {
    var file = files.next();
    var fileSize = file.getSize();
    data.push([file.getName(), fileSize]);
  }
  var spreadsheet = SpreadsheetApp.create('File Sizes');
  var sheet = spreadsheet.getActiveSheet();
  sheet.getRange(1, 1, data.length, data[0].length).setValues(data);
}

Метод 2. Использование службы Advanced Drive
Служба Advanced Drive обеспечивает более детальный контроль над файлами Google Диска. Используя Drive API, мы можем получить метаданные файла, включая размер файла. Вот пример фрагмента кода:

function listFilesAndSizes() {
  var folderId = 'YOUR_FOLDER_ID';
  var data = [['File Name', 'File Size (bytes)']];
  var files = Drive.Files.list({
    q: "'" + folderId + "' in parents",
    fields: 'items(title,fileSize)'
  }).items;
  for (var i = 0; i < files.length; i++) {
    var file = files[i];
    data.push([file.title, file.fileSize]);
  }
  var spreadsheet = SpreadsheetApp.create('File Sizes');
  var sheet = spreadsheet.getActiveSheet();
  sheet.getRange(1, 1, data.length, data[0].length).setValues(data);
}

Метод 3. Использование Drive API с API Google Таблиц
Чтобы использовать всю мощь API Google Таблиц, мы можем делать прямые запросы для получения размеров файлов. Этот подход требует включения API Google Таблиц в проекте Apps Script. Вот пример фрагмента кода:

function listFilesAndSizes() {
  var folderId = 'YOUR_FOLDER_ID';
  var data = [['File Name', 'File Size (bytes)']];
  var files = Drive.Files.list({
    q: "'" + folderId + "' in parents",
    fields: 'items(title,fileSize)'
  }).items;
  for (var i = 0; i < files.length; i++) {
    var file = files[i];
    data.push([file.title, file.fileSize]);
  }
  var spreadsheetId = SpreadsheetApp.create('File Sizes').getId();
  var sheetName = SpreadsheetApp.openById(spreadsheetId).getSheets()[0].getName();
  var range = sheetName + '!A1:B' + data.length;
  var requests = [{
    updateCells: {
      start: { sheetId: 0, rowIndex: 0, columnIndex: 0 },
      rows: [{
        values: data.map(row => ({
          userEnteredValue: { stringValue: row[0] }
        })).concat(data.map(row => ({
          userEnteredValue: { numberValue: row[1] }
        })))
      }],
      fields: 'userEnteredValue'
    }
  }];
  Sheets.Spreadsheets.batchUpdate({ requests: requests }, spreadsheetId);
}

В этой статье мы обсудили три различных метода получения списка файлов с указанием их размеров из папки Google Диска и экспорта данных в лист Excel с помощью Google Script. Используя службу DriveApp, службу Advanced Drive и Drive API с API Google Таблиц, вы можете выбрать подход, который лучше всего соответствует вашим требованиям. Эти методы предоставляют вам гибкость для эффективного управления и анализа размеров файлов на вашем Google Диске. Так что давайте, попробуйте и упростите свои задачи по управлению файлами!