Class DriveApp

DriveApp

スクリプトが Google ドライブ内のファイルとフォルダを作成、検索、変更できるようにします。共有ドライブ内のファイルまたはフォルダにアクセスするには、ドライブの高度なサービスを使用します。

// Logs the name of every file in the user's Drive.
const files = DriveApp.getFiles();
while (files.hasNext()) {
  const file = files.next();
  console.log(file.getName());
}

プロパティ

プロパティタイプ説明
AccessAccess明示的にアクセス権が付与されている個々のユーザーのほかに、ファイルまたはフォルダにアクセスできるユーザーのクラスを表す列挙型。
PermissionPermissionファイルまたはフォルダにアクセスできるユーザーに付与される権限を表す列挙型。明示的にアクセス権が付与された個々のユーザーは除きます。

メソッド

メソッド戻り値の型概要
continueFileIterator(continuationToken)FileIterator前のイテレータの継続トークンを使用して、ファイルの反復処理を再開します。
continueFolderIterator(continuationToken)FolderIterator前のイテレータの継続トークンを使用して、フォルダの反復処理を再開します。
createFile(blob)File任意のデータの指定された Blob から、ユーザーのドライブのルートにファイルを作成します。
createFile(name, content)File指定された名前と内容のテキスト ファイルをユーザーのドライブのルートに作成します。
createFile(name, content, mimeType)File指定された名前、内容、MIME タイプで、ユーザーのドライブのルートにファイルを作成します。
createFolder(name)Folder指定された名前のフォルダをユーザーのドライブのルートに作成します。
createShortcut(targetId)File指定されたドライブ アイテム ID へのショートカットを作成して返します。
createShortcutForTargetIdAndResourceKey(targetId, targetResourceKey)File指定されたドライブ アイテム ID とリソースキーへのショートカットを作成して返します。
enforceSingleParent(value)voidアイテムの親に影響するすべての呼び出しに対して enforceSingleParent 動作を有効または無効にします。
getFileById(id)File指定された ID のファイルを取得します。
getFileByIdAndResourceKey(id, resourceKey)File指定された ID とリソースキーを持つファイルを取得します。
getFiles()FileIteratorユーザーのドライブ内のすべてのファイルのコレクションを取得します。
getFilesByName(name)FileIterator指定された名前を持つ、ユーザーのドライブ内のすべてのファイルのコレクションを取得します。
getFilesByType(mimeType)FileIterator指定された MIME タイプのユーザーのドライブ内のすべてのファイルのコレクションを取得します。
getFolderById(id)Folder指定された ID のフォルダを取得します。
getFolderByIdAndResourceKey(id, resourceKey)Folder指定された ID とリソースキーのフォルダを取得します。
getFolders()FolderIteratorユーザーのドライブ内のすべてのフォルダのコレクションを取得します。
getFoldersByName(name)FolderIterator指定された名前を持つユーザーのドライブ内のすべてのフォルダのコレクションを取得します。
getRootFolder()Folderユーザーのドライブのルートにあるフォルダを取得します。
getStorageLimit()Integerユーザーがドライブに保存できるバイト数を取得します。
getStorageUsed()Integerユーザーが現在ドライブに保存しているバイト数を取得します。
getTrashedFiles()FileIteratorユーザーのドライブのゴミ箱にあるすべてのファイルのコレクションを取得します。
getTrashedFolders()FolderIteratorユーザーのドライブのゴミ箱にあるすべてのフォルダのコレクションを取得します。
searchFiles(params)FileIterator指定した検索条件に一致する、ユーザーのドライブ内のすべてのファイルのコレクションを取得します。
searchFolders(params)FolderIterator指定した検索条件に一致する、ユーザーのドライブ内のすべてのフォルダのコレクションを取得します。

詳細なドキュメント

continueFileIterator(continuationToken)

前のイテレータの継続トークンを使用して、ファイルの反復処理を再開します。この方法は、1 回の実行でイテレータを処理する時間が最大実行時間を超過する場合に便利です。通常、連続トークンの有効期間は 1 週間です。

// Continues getting a list of all 'Untitled document' files in the user's
// Drive. Creates a file iterator named 'previousIterator'.
const previousIterator = DriveApp.getFilesByName('Untitled document');

// Gets continuation token from the previous file iterator.
const continuationToken = previousIterator.getContinuationToken();

// Creates a new iterator using the continuation token from the previous file
// iterator.
const newIterator = DriveApp.continueFileIterator(continuationToken);

// Resumes the file iteration using a continuation token from 'firstIterator'
// and logs the file name.
if (newIterator.hasNext()) {
  const file = newIterator.next();
  console.log(file.getName());
}

パラメータ

名前説明
continuationTokenString前のファイル イテレータからの連続トークン。

戻る

FileIterator - 連続トークンが生成されたときに前のイテレータに残っていたファイルのコレクション。


continueFolderIterator(continuationToken)

前のイテレータの継続トークンを使用して、フォルダの反復処理を再開します。この方法は、1 回の実行でイテレータを処理する時間が最大実行時間を超過する場合に便利です。通常、連続トークンの有効期間は 1 週間です。

// Continues getting a list of all folders in user's Drive.
// Creates a folder iterator named 'previousIterator'.
const previousIterator = DriveApp.getFolders();

// Gets continuation token from the previous folder iterator.
const continuationToken = previousIterator.getContinuationToken();

// Creates a new iterator using the continuation token from the previous folder
// iterator.
const newIterator = DriveApp.continueFolderIterator(continuationToken);

// Resumes the folder iteration using a continuation token from the previous
// iterator and logs the folder name.
if (newIterator.hasNext()) {
  const folder = newIterator.next();
  console.log(folder.getName());
}

パラメータ

名前説明
continuationTokenString前のフォルダ イテレータからの連続トークン。

戻る

FolderIterator - 連続トークンが生成されたときに前のイテレータに残っていたフォルダのコレクション。


createFile(blob)

任意のデータの指定された Blob から、ユーザーのドライブのルートにファイルを作成します。

パラメータ

名前説明
blobBlobSource新しいファイルのデータ。

戻る

File - 新しいファイル。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

  • https://www.googleapis.com/auth/drive

createFile(name, content)

指定された名前と内容のテキスト ファイルをユーザーの Google ドライブのルートに作成します。content が 50 MB を超える場合、例外をスローします。

// Create a text file with the content "Hello, world!"
DriveApp.createFile('New Text File', 'Hello, world!');

パラメータ

名前説明
nameString新しいファイルの名前。
contentString新しいファイルの内容。

戻る

File - 新しいファイル。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

  • https://www.googleapis.com/auth/drive

createFile(name, content, mimeType)

指定された名前、内容、MIME タイプで、ユーザーのドライブのルートにファイルを作成します。content が 10 MB を超えると、例外がスローされます。

// Create an HTML file with the content "Hello, world!"
DriveApp.createFile('New HTML File', '<b>Hello, world!</b>', MimeType.HTML);

パラメータ

名前説明
nameString新しいファイルの名前。
contentString新しいファイルの内容。
mimeTypeString新しいファイルの MIME タイプ。

戻る

File - 新しいファイル。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

  • https://www.googleapis.com/auth/drive

createFolder(name)

指定された名前のフォルダをユーザーのドライブのルートに作成します。

パラメータ

名前説明
nameString新しいフォルダの名前。

戻る

Folder - 新しいフォルダ。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

  • https://www.googleapis.com/auth/drive

createShortcut(targetId)

指定されたドライブ アイテム ID へのショートカットを作成して返します。

パラメータ

名前説明
targetIdStringターゲット ファイルまたはフォルダのファイル ID。

戻る

File - 新しいショートカット。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

  • https://www.googleapis.com/auth/drive

createShortcutForTargetIdAndResourceKey(targetId, targetResourceKey)

指定されたドライブ アイテム ID とリソースキーへのショートカットを作成して返します。リソースキーは、リンクを使用して共有されたターゲット ファイルまたはフォルダにアクセスするために渡す必要がある追加のパラメータです。

// Creates shortcuts for all folders in the user's drive that have a specific
// name.
// TODO(developer): Replace 'Test-Folder' with a valid folder name in your
// drive.
const folders = DriveApp.getFoldersByName('Test-Folder');

// Iterates through all folders named 'Test-Folder'.
while (folders.hasNext()) {
  const folder = folders.next();

  // Creates a shortcut to the provided Drive item ID and resource key, and
  // returns it.
  DriveApp.createShortcutForTargetIdAndResourceKey(
      folder.getId(),
      folder.getResourceKey(),
  );
}

パラメータ

名前説明
targetIdString対象のファイルまたはフォルダの ID。
targetResourceKeyString対象のファイルまたはフォルダのリソースキー。

戻る

File - 新しいショートカット。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

  • https://www.googleapis.com/auth/drive

enforceSingleParent(value)

アイテムの親に影響するすべての呼び出しで enforceSingleParent 動作を有効または無効にします。

詳しくは、 Google ドライブのフォルダ構造と共有モデルの簡素化に関するブログ投稿をご覧ください。

// Enables enforceSingleParent behavior for all calls affecting item parents.
DriveApp.enforceSingleParent(true);

パラメータ

名前説明
valueBooleanenforceSingleParent フラグの新しい状態。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

  • https://www.googleapis.com/auth/drive

getFileById(id)

指定された ID のファイルを取得します。ファイルが存在しない場合、またはユーザーにファイルへのアクセス権がない場合は、スクリプト例外をスローします。

// Gets a list of all files in Google Drive with the given name.
// TODO(developer): Replace 'Test' with your file name.
const files = DriveApp.getFilesByName('Test');

if (files.hasNext()) {
  // Gets the ID of each file in the list.
  const fileId = files.next().getId();

  // Gets the file name using its ID and logs it to the console.
  console.log(DriveApp.getFileById(fileId).getName());
}

パラメータ

名前説明
idStringファイルの ID。

戻る

File - 指定された ID のファイル。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

  • https://www.googleapis.com/auth/drive.readonly
  • https://www.googleapis.com/auth/drive

getFileByIdAndResourceKey(id, resourceKey)

指定された ID とリソースキーを持つファイルを取得します。リソースキーは、リンクを使用して共有されたファイルにアクセスするために渡す必要がある追加のパラメータです。

ファイルが存在しない場合や、ユーザーにファイルへのアクセス権がない場合は、スクリプト例外をスローします。

// Gets a list of all files in Drive with the given name.
// TODO(developer): Replace 'Test' with your file name.
const files = DriveApp.getFilesByName('Test');
if (files.hasNext()) {
  // Gets the first file in the list.
  const file = files.next();

  // Gets the ID and resource key.
  const key = file.getResourceKey();
  const id = file.getId();

  // Logs the file name to the console using its ID and resource key.
  console.log(DriveApp.getFileByIdAndResourceKey(id, key).getName());
}

パラメータ

名前説明
idStringファイルの ID。
resourceKeyStringフォルダのリソースキー。

戻る

File - 指定された ID のファイル。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

  • https://www.googleapis.com/auth/drive.readonly
  • https://www.googleapis.com/auth/drive

getFiles()

ユーザーのドライブ内のすべてのファイルのコレクションを取得します。

戻る

FileIterator - ユーザーのドライブ内のすべてのファイルのコレクション。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

  • https://www.googleapis.com/auth/drive.readonly
  • https://www.googleapis.com/auth/drive

getFilesByName(name)

指定された名前を持つ、ユーザーのドライブ内のすべてのファイルのコレクションを取得します。

パラメータ

名前説明
nameString検索するファイルの名前。

戻る

FileIterator - 指定された名前を持つユーザーのドライブ内のすべてのファイルのコレクション。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

  • https://www.googleapis.com/auth/drive.readonly
  • https://www.googleapis.com/auth/drive

getFilesByType(mimeType)

指定された MIME タイプのユーザーのドライブ内のすべてのファイルのコレクションを取得します。

パラメータ

名前説明
mimeTypeString検索するファイルの MIME タイプ。

戻る

FileIterator - 指定された MIME タイプのユーザーのドライブ内のすべてのファイルのコレクション。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

  • https://www.googleapis.com/auth/drive.readonly
  • https://www.googleapis.com/auth/drive

getFolderById(id)

指定された ID のフォルダを取得します。フォルダが存在しない場合、またはユーザーにフォルダへのアクセス権限がない場合、スクリプト例外をスローします。

パラメータ

名前説明
idStringフォルダの ID。

戻る

Folder - 指定された ID のフォルダ。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

  • https://www.googleapis.com/auth/drive.readonly
  • https://www.googleapis.com/auth/drive

getFolderByIdAndResourceKey(id, resourceKey)

指定された ID とリソースキーのフォルダを取得します。リソースキーは、リンクを使用して共有されたフォルダにアクセスするために渡す必要がある追加のパラメータです。

フォルダが存在しない場合、またはユーザーにフォルダへのアクセス権がない場合は、スクリプト例外をスローします。

パラメータ

名前説明
idStringフォルダの ID。
resourceKeyStringフォルダのリソースキー。

戻る

Folder - 指定された ID のフォルダ。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

  • https://www.googleapis.com/auth/drive.readonly
  • https://www.googleapis.com/auth/drive

getFolders()

ユーザーのドライブ内のすべてのフォルダのコレクションを取得します。

戻る

FolderIterator - ユーザーのドライブ内のすべてのフォルダのコレクション。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

  • https://www.googleapis.com/auth/drive.readonly
  • https://www.googleapis.com/auth/drive

getFoldersByName(name)

指定された名前を持つユーザーのドライブ内のすべてのフォルダのコレクションを取得します。

パラメータ

名前説明
nameString検索するフォルダの名前。

戻る

FolderIterator - 指定された名前を持つユーザーのドライブ内のすべてのフォルダのコレクション。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

  • https://www.googleapis.com/auth/drive.readonly
  • https://www.googleapis.com/auth/drive

getRootFolder()

ユーザーのドライブのルートにあるフォルダを取得します。

// Gets the user's My Drive folder and logs its name to the console.
console.log(DriveApp.getRootFolder().getName());

// Logs the Drive owner's name to the console.
console.log(DriveApp.getRootFolder().getOwner().getName());

戻る

Folder - ユーザーのドライブのルートフォルダ。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

  • https://www.googleapis.com/auth/drive.readonly
  • https://www.googleapis.com/auth/drive

getStorageLimit()

ユーザーがドライブに保存できるバイト数を取得します。

// Gets the number of bytes the user can store in Drive and logs it to the
// console.
console.log(DriveApp.getStorageLimit());

戻る

Integer - ユーザーがドライブに保存できるバイト数。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

  • https://www.googleapis.com/auth/drive.readonly
  • https://www.googleapis.com/auth/drive

getStorageUsed()

ユーザーが現在ドライブに保存しているバイト数を取得します。

// Gets the number of bytes the user is currently storing in Drive and logs it
// to the console.
console.log(DriveApp.getStorageUsed());

戻る

Integer - ユーザーが現在ドライブに保存しているバイト数。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

  • https://www.googleapis.com/auth/drive.readonly
  • https://www.googleapis.com/auth/drive

getTrashedFiles()

ユーザーのドライブのゴミ箱にあるすべてのファイルのコレクションを取得します。

// Gets a list of all the files in the trash of the user's Drive.
const trashFiles = DriveApp.getTrashedFiles();

// Logs the trash file names to the console.
while (trashFiles.hasNext()) {
  const file = trashFiles.next();
  console.log(file.getName());
}

戻る

FileIterator - ゴミ箱にあるファイルのコレクション。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

  • https://www.googleapis.com/auth/drive.readonly
  • https://www.googleapis.com/auth/drive

getTrashedFolders()

ユーザーのドライブのゴミ箱にあるすべてのフォルダのコレクションを取得します。

// Gets a collection of all the folders in the trash of the user's Drive.
const trashFolders = DriveApp.getTrashedFolders();

// Logs the trash folder names to the console.
while (trashFolders.hasNext()) {
  const folder = trashFolders.next();
  console.log(folder.getName());
}

戻る

FolderIterator - ゴミ箱内のフォルダのコレクション。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

  • https://www.googleapis.com/auth/drive.readonly
  • https://www.googleapis.com/auth/drive

searchFiles(params)

指定した検索条件に一致する、ユーザーのドライブ内のすべてのファイルのコレクションを取得します。検索条件の詳細については、Google ドライブ SDK のドキュメントをご覧ください。Drive サービスは Drive API の v2 を使用しており、一部のクエリフィールドは v3 と異なります。v2 と v3 のフィールドの違いを確認します。

params 引数は文字列値を含めることができるクエリ文字列であるため、引用符を正しくエスケープしてください("title contains 'Gulliver\\'s Travels'"'title contains "Gulliver\'s Travels"' など)。

// Logs the name of every file in the user's Drive that modified after February 28,
// 2022 whose name contains "untitled.""
const files = DriveApp.searchFiles(
    'modifiedDate > "2022-02-28" and title contains "untitled"');
while (files.hasNext()) {
  const file = files.next();
  console.log(file.getName());
}

パラメータ

名前説明
paramsString検索条件(Google Drive SDK のドキュメントで詳細をご確認ください)。

戻る

FileIterator - 検索条件に一致するユーザーのドライブ内のすべてのファイルのコレクション。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

  • https://www.googleapis.com/auth/drive.readonly
  • https://www.googleapis.com/auth/drive

searchFolders(params)

指定した検索条件に一致する、ユーザーのドライブ内のすべてのフォルダのコレクションを取得します。検索条件の詳細については、Google ドライブ SDK のドキュメントをご覧ください。Drive サービスは Drive API の v2 を使用しており、一部のクエリフィールドは v3 と異なります。v2 と v3 のフィールドの違いを確認します。

params 引数は文字列値を含めることができるクエリ文字列であるため、引用符を正しくエスケープしてください("title contains 'Gulliver\\'s Travels'"'title contains "Gulliver\'s Travels"' など)。

// Logs the name of every folder in the user's Drive that you own and is starred.
const folders = DriveApp.searchFolders('starred = true and "me" in owners');
while (folders.hasNext()) {
  const folder = folders.next();
  console.log(folder.getName());
}

パラメータ

名前説明
paramsString検索条件(Google Drive SDK のドキュメントで詳細をご確認ください)。

戻る

FolderIterator - 検索条件に一致するユーザーのドライブ内のすべてのフォルダのコレクション。

承認

このメソッドを使用するスクリプトには、次のスコープの 1 つ以上による承認が必要です。

  • https://www.googleapis.com/auth/drive.readonly
  • https://www.googleapis.com/auth/drive

サポート終了のメソッド