GoogleDrive|GAS|指定したフォルダとその直下のフォルダとファイルのラベルと共有URLを一括取得して、指定のスプレッドシートに書き出す方法

function fetchImage() {

 // 環境変数のセット
 var scriptProperties = PropertiesService.getScriptProperties();
 var SHEET_ID = scriptProperties.getProperty('記入するスプレッドシート名を記入'); // SpreadSheet ID
 var spreadsheet = SpreadsheetApp.openById('記入するスプレッドシート名を記入');
 var FOLDER_ID = scriptProperties.getProperty('取得したい大元のフォルダIDを記入'); // Googleドライブフォルダー ID
 var folder = DriveApp.getFolderById('取得したい大元のフォルダIDを記入');
 // var folder = DriveApp.getRootFolder(); // ルートフォルダ配下を取得する場合はこちら
 console.log(folder.getName()); // 開始フォルダー

 // 特定のフォルダー配下のフォルダ名とURL、サイズを表示する
 function getAllFolder(f) {
   var folders = f.getFolders();
   while (folders.hasNext()) {
     var subFolder = folders.next();
     console.log(subFolder.getName());
     console.log(subFolder.getName(), subFolder.getUrl(), subFolder.getSize());
     appendLogToSpreadsheet(['Folder' ,subFolder.getName(), subFolder.getUrl(), subFolder.getSize()], SHEET_ID, 'シート1');
     getAllFile(subFolder);
     getAllFolder(subFolder);
   }
 }
 getAllFolder(folder);

 // フォルダー配下のファイル名とURL、サイズを表示する
 function getAllFile(f) {
   var files = f.getFiles();
   var listOfFiles = [];
   while (files.hasNext()) {
     var file = files.next();
     console.log(file.getName(), file.getUrl(), file.getSize());
     appendLogToSpreadsheet(['---file', file.getName(), file.getUrl(), file.getSize()], SHEET_ID, 'シート1');
   }
 }

}

// スプレッドシートにログを書き出す
function appendLogToSpreadsheet(log, sheetId, sheetName) {
   if (sheetName === void 0) { sheetName = 'sheet1'; }
   var spreadSheet = SpreadsheetApp.openById(記入するスプレッドシート名を記入');
   spreadSheet.getSheetByName(sheetName).appendRow([new Date(), log[0], log[1], log[2], log[3]]);
   SpreadsheetApp.flush();
}

この記事が気に入ったらサポートをしてみませんか?