スプレッドシートに出力します
Logger.log がとても使いやすくなりましたが、あきまでデバッグ目的になるのでスプレッドシートに結果を残します。実行前に出力する列単位のクリアを行っていますが、マクロで取得したコードです。Drive API サービスの設定
GAS からは、V2 の利用となるので注意が必要です。V3 ではパラメータが違います。マイドライブのルートフォルダのソート
そのままではソートされないので、一旦配列へセットしてソートしてから出力しています
function listDrive() { // 選択したシートを対象とします var spreadsheet = SpreadsheetApp.getActive(); // 列クリア spreadsheet.getRange('A:E').activate(); spreadsheet.getActiveRangeList().clear({contentsOnly: true, commentsOnly: true, skipFilteredRows: true}); // ************************************************** // ドライブ 一覧 ( 100件まで:それ以上は nextPageToken を使う ) // Drive API v2 // ************************************************** var response = Drive.Drives.list({"maxResults":100}); var drives = response.items; var targetRange; for (i = 0; i < drives.length; i++) { Logger.log('%s (%s)', drives[i].name, drives[i].id); targetRange = spreadsheet.getRange('A' + (i+1)); targetRange.setValue(drives[i].name); targetRange = spreadsheet.getRange('B' + (i+1)); targetRange.setValue(drives[i].id); } // ************************************************** // マイドライブルート 内のフォルダの一覧 ( Drive API は必要ない ) // ************************************************** var folders = DriveApp.getRootFolder().getFolders(); var a = new Array(); while (folders.hasNext()) { var folder = folders.next(); Logger.log(folder.getName()); a.push(folder.getName()); } a.sort() for (i = 0; i < a.length; i++) { targetRange = spreadsheet.getRange('E' + (i+1)); targetRange.setValue(a[i]); } }
|