Googleドライブの特定のフォルダ配下のフォルダ名とファイル名、URLをGoogleスプレッドシートに出力するサンプルです。
フォルダ配下にさらにフォルダがある場合は、全てのフォルダを再帰処理します。
こんな感じ。フォルダーごとフォルダ名とURL、その配下のファイル名とURLを全部取得します。
前提
- Googleアカウントの取得
注意点
複数のGoogleアカウントでログインされている場合は、一度全てログアウトして、実行対象のGoogleドライブのアカウントにて再度ログインしてください。
サンプルコード
function fetchImage() {
// 環境変数のセット
const scriptProperties = PropertiesService.getScriptProperties();
const SHEET_ID = scriptProperties.getProperty('SHEET_ID'); // SpreadSheet ID
const SpreadSheetObj = SpreadsheetApp.openById(SHEET_ID);
const FOLDER_ID = scriptProperties.getProperty('FOLDER_ID'); // Googleドライブフォルダー ID
const folder = DriveApp.getFolderById(FOLDER_ID);
// const folder = DriveApp.getRootFolder(); // ルートフォルダ配下を取得する場合はこちら
console.log(folder.getName()); // 開始フォルダー
// 特定のフォルダー配下のフォルダ名とURL、サイズを表示する
function getAllFolder(f) {
const folders = f.getFolders();
while (folders.hasNext()) {
const 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) {
const files = f.getFiles();
const listOfFiles = [];
while (files.hasNext()) {
const 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(sheetId);
spreadSheet.getSheetByName(sheetName).appendRow([new Date(), log[0], log[1], log[2], log[3]]);
SpreadsheetApp.flush();
}
利用方法
- Googleドライブの探索対象の先頭フォルダのIDをメモします。
- フォルダ名、ファイル名、URLをリスト出力するスプレッドシートを作成します。
- 新規 Google Apps Scriptプロジェクトを作成します。
- ファイルにサンプルコードをコピーします。
- プロジェクトのスクリプトプロパティにプログラム内で利用する環境変数を設定します。
- プログラムを実行します。
- スプレッドシートを確認します。
説明
1. Googleドライブの探索対象の先頭フォルダのIDをメモします。
後ほど環境変数にセットする為に、GoogleドライブのフォルダのIDをメモしておきます。
フォルダIDは、対象フォルダに移動した際のURLの下記の部分です。
https://drive.google.com/drive/folders/{フォルダーID}
※{フォルダーID}の{}の部分は除いてください。
2. フォルダ名、ファイル名、URLをリスト出力するスプレッドシートを作成します。
Googleドライブにて、新規にGoogleスプレッドシートを作成します。
1 | 2 | 3 | 4 | 5 |
---|---|---|---|---|
日付 | 区分 | 名称 | URL | サイズ |
区分にはフォルダーorファイルの区分、名称にはフォルダorファイルの名称がセットされます。
後ほど環境変数にセットする為に、スプレッドシートのIDをメモしておきます。
スプレッドシートIDは、スプレッドシートのURLの下記の部分です。
https://docs.google.com/spreadsheets/d/{スプレッドシートID}/edit#gid=0
※{スプレッドシートID}の{}の部分は除いてください。
3. 新規 Google Apps Scriptプロジェクトを作成します。
Googleドライブにて、新規にGoogle Apps Scriptプロジェクトを作成します。
※その他→Google Apps Scriptを選択
名前を変更してOK押下します。
gas-sample-01
4. ファイルにサンプルコードをコピーします。
function myFunction() {
}
部分を前段のサンプルコードで置き換えます。
置き換えたら保存してください。
※ファイル→保存を選択
5. プロジェクトのスクリプトプロパティにプログラム内で利用する環境変数を設定します。
前段の1.と2.でメモした、フォルダーIDとスプレッドシートIDを下記の様に設定します。
※{}の記号は入れないでください。
プロパティ | 値 |
---|---|
FOLDER_ID | {フォルダーID} |
SHEET_ID | {スプレッドシートID} |
スクリプトプロパティを表示します。
ファイル→プロジェクトのプロパティを選択
最後に保存ボタンを押下します。
6. プログラムを実行します。
関数を選択します
※関数名→fetchImageをプルダウンから選択します。
Google認証
初回は認証が必要になります
gas-sample-01(安全ではないページ)に移動を選択
実行が終了するまでしばらく待ちます。