Google ドライブでファイルが移動できない理由とは?

Google ドライブには「ファイルを移動する」機能が備わっています。「移動」は「コピー」とは異なる機能です。「コピー」はファイルの複製を作る機能であり、「移動」は実体ファイルそのものを別フォルダに移動する機能になります。ただ、この「移動」は万能な機能ではなく、条件を満たさない場合はファイルを移動することはできません。今回は Google ドライブでファイル移動ができない場合の原因について解説します。
ファイルを移動する方法
Google ドライブのファイルは右クリックから「指定の場所へ移動」を選択することで任意のフォルダに移動することができます(ファイルを開いた状態からも移動先を選択することは可能)。

移動先の選択
ファイルの移動先は、以下5つの候補から選択することができます。「パソコン」は、パソコン版 Google ドライブと同期されている共有スペースを指します。
- マイドライブ
- 共有ドライブ
- パソコン
- 共有アイテム
- スター付き
ファイルを移動できない理由
前述した通り、移動先には5つの候補が存在しますが、これらは、移動先を選ぶための入り口であり、結局は移動先として選択可能なフォルダは「マイドライブ」、もしくは「共有ドライブ」どちらかのフォルダでしかありません。
つまり、「移動元」と「移動先」のどちらも、選択肢が「マイドライブ」と「共有ドライブ」の2種類しか存在しないため、ファイルが移動できない理由は、移動元2種類と移動先2種類の組み合わせのパターンで説明することができます。
それぞれの組み合わせによる移動できない原因について解説します。
マイドライブからマイドライブへの移動が失敗する原因
あなたのマイドライブから、誰かのマイドライブにファイルを移動する場合、移動を実行するユーザーは、以下の条件を満たしている必要性があります。
- 「移動元」に対して編集権限以上を保持
- 「移動先」に対して編集権限以上を保持
移動が失敗する場合、どちらかの条件を満たしていない可能性があります。また、あなたがご利用のアカウントが Google Workspace アカウントであり、移動先が異なる組織のドメインである場合、移動先が社外共有を禁止にしている可能性があり、そもそも条件を満たせない可能性があります。
マイドライブから共有ドライブへの移動が失敗する原因
マイドライブから共有ドライブにファイルを移動する場合、移動を実行するユーザーは、以下の条件を満たしている必要性があります。
- 「移動元」のファイルに対して「オーナー」権限を保持
- 「移動先」の共有ドライブに対して「投稿者」権限以上を保持
移動が失敗する場合、どちらかの条件を満たしていない可能性があります。ただ、2つの条件を満たしている場合、異なる Google Workspace 組織間であっても、ファイルを移動することが可能になります。
共有ドライブから共有ドライブへの移動が失敗する原因
共有ドライブから共有ドライブにファイルを移動する場合、移動を実行するユーザーは、以下の条件を満たしている必要性があります。
- 「移動元」の共有ドライブに対して「管理者」権限を保持
- 「移動先」の共有ドライブに対して「投稿者」権限以上を保持
移動が失敗する場合、どちらかの条件を満たしていない可能性があります。このケースについても、2つの条件を満たしていれば、異なる Google Workspace 組織間であっても、ファイルを移動することが可能になります。
プログラムで自動化する方法
Google Apps Script (GAS)には、「moveTo」というファイル移動のための便利な関数が用意されています。前述した条件を満たしていれば、この関数を使うことで簡単にファイル移動を実現することができます。
var file = DriveApp.getFileById("ファイルID");
var folder = DriveApp.getFolderById("フォルダID");
file.moveTo(folder);
それ以外にも Google ドライブのREST APIを利用してファイル移動を実現する方法もありますが、REST APIにはGASで使える「moveTo」のような機能は存在しません。そのため、APIを使ってファイル移動を実現する場合は、権限や親フォルダの変更によって、ファイルを移動させることになります。
まとめ
- マイドライブからマイドライブへファイルを移動したい場合、ユーザーは「移動元」と「移動先」に対して編集権限以上を保持している必要がある
- マイドライブから共有ドライブへファイルを移動したい場合、ユーザーは「移動元」のファイルに対して「オーナー」権限、「移動先」の共有ドライブに対して「投稿者」権限を保持している必要がある
- 共有ドライブから共有ドライブへファイルを移動したい場合、ユーザーは移動元の共有ドライブに対して「管理者」権限、移動先の共有ドライブに対して「投稿者」権限を保持している必要がある
- Google Apps Script (GAS)によって、ファイル移動を自動化することができる
- Google ドライブ APIによってファイルを移動することも可能
