
GASでDriveAppを使って、ファイル名とURLの一覧を自動で取得!もう手作業でのリスト作成は不要です。
GASでファイル名・URL一覧を取得する基本
Google Apps Script(GAS)を使って、Google Drive内のファイル名とURLの一覧を取得する方法を解説します。これは、ドキュメント管理や共有状況の把握に非常に役立ちます。特に、大量のファイルを扱う場合に、手作業でのリスト作成は非効率です。GASを利用すれば、自動化が可能です。
この処理を実現するために、GASのDriveApp
サービスを利用します。DriveApp
はGoogle Driveを操作するための機能を提供しており、ファイルの検索、作成、更新、削除など、様々な操作を行うことができます。
function getFileList() {
// DriveAppサービスへのアクセス
var files = DriveApp.getFiles();
// ファイル情報を格納する配列
var fileList = [];
// ファイルを順番に処理
while (files.hasNext()) {
var file = files.next();
var fileName = file.getName();
var fileUrl = file.getUrl();
// ファイル名とURLを配列に追加
fileList.push([fileName, fileUrl]);
}
// 結果をログに出力(またはスプレッドシートに出力など)
Logger.log(fileList);
}
フォルダを指定してファイル一覧を取得
特定のフォルダ内のファイルのみを対象にしたい場合もあります。DriveApp.getFolderById(folderId)
を使うことで、特定のフォルダを指定できます。folderId
は、Google DriveのフォルダのURLに含まれるIDです。
function getFileListInFolder(folderId) {
// 指定されたIDのフォルダを取得
var folder = DriveApp.getFolderById(folderId);
var files = folder.getFiles();
// ファイル情報を格納する配列
var fileList = [];
// ファイルを順番に処理
while (files.hasNext()) {
var file = files.next();
var fileName = file.getName();
var fileUrl = file.getUrl();
// ファイル名とURLを配列に追加
fileList.push([fileName, fileUrl]);
}
// 結果をログに出力(またはスプレッドシートに出力など)
Logger.log(fileList);
}
上記の例では、folderId
変数にフォルダのIDを設定する必要があります。フォルダIDは、ブラウザでフォルダを開いた際のURLに含まれています(例:https://drive.google.com/drive/folders/xxxxxxxxxxxxxxxxxxxxxxxxx
の xxxxxxxxxxxxxxxxxxxxxxxxx
の部分)。
ファイル一覧をスプレッドシートに出力
取得したファイル名とURLをスプレッドシートに出力することで、より扱いやすくなります。SpreadsheetApp
サービスを利用して、スプレッドシートを作成し、そこにデータを書き込みます。
function outputFileListToSpreadsheet() {
// スプレッドシートを作成
var spreadsheet = SpreadsheetApp.create('ファイル一覧');
var sheet = spreadsheet.getActiveSheet();
// ヘッダー行を追加
sheet.appendRow(['ファイル名', 'URL']);
// ファイル一覧を取得(ここではDriveApp.getFiles()を使用)
var files = DriveApp.getFiles();
// ファイル情報を格納する配列
var fileList = [];
// ファイルを順番に処理
while (files.hasNext()) {
var file = files.next();
var fileName = file.getName();
var fileUrl = file.getUrl();
// ファイル名とURLを配列に追加
fileList.push([fileName, fileUrl]);
}
// スプレッドシートにデータを出力
sheet.getRange(2, 1, fileList.length, 2).setValues(fileList);
}
このコードでは、まずSpreadsheetApp.create('ファイル一覧')
で新しいスプレッドシートを作成し、シート名を設定しています。次に、sheet.appendRow(['ファイル名', 'URL'])
でヘッダー行を追加しています。そして、取得したファイル名とURLの配列をsheet.getRange(2, 1, fileList.length, 2).setValues(fileList)
でスプレッドシートに出力しています。
既存のスプレッドシートに出力する場合は、SpreadsheetApp.openById(spreadsheetId)
を使用します。spreadsheetId
は、スプレッドシートのURLに含まれるIDです。
エラーハンドリングと注意点
GASでDriveAppを扱う際には、権限設定に注意が必要です。スクリプトを実行する際には、Googleアカウントへのアクセス許可を求められます。また、ファイル数が非常に多い場合、処理に時間がかかることがあります。タイムアウトエラーが発生する可能性があるため、必要に応じて処理を分割するなどの対策を検討してください。
また、ファイルやフォルダが存在しない場合に備えて、エラーハンドリングを実装することも重要です。try...catch
構文を使用することで、エラー発生時の処理を記述できます。
try {
var folder = DriveApp.getFolderById(folderId);
} catch (e) {
Logger.log('エラー: 指定されたフォルダが見つかりません。');
return;
}
参考リンク
まとめ
GASのDriveApp
サービスを利用することで、Google Drive内のファイル名とURLの一覧を簡単に取得し、スプレッドシートに出力することができます。この自動化により、ドキュメント管理の効率が大幅に向上します。エラーハンドリングや権限設定に注意し、GASを有効活用しましょう。