フォルダから他のフォルダの所属を解除する— removeFolder()
※『Googleドライブのショートカット機能追加と複数フォルダ所属機能の終了』の記事で記載の通り、2020年9月30日をもって本記事で紹介しているremoveFolderは非推奨となりました。
今回紹介するメソッドは、Googleドライブのフォルダに格納されている他のフォルダの所属を解除する方法をご紹介します。
addFolderと同じように、removeFolderはDriveApp.removeFolder()という使い方と、Folder.removeFolder()という使い方の2つあります。これの使い方は全く同じでフォルダを指定するかしないかという違いだけになります。
DriveApp.removeFolder()の場合は、フォルダを指定しない方法ですのでマイドライブからフォルダの所属情報が解除されます。Folder.removeFolder()の場合は、Folderで指定されたフォルダから別のフォルダの所属を解除されます。
『 引数に入れる値 』
removeFolder(child)
//マイドライブからフォルダの所属を解除するプログラム function sampleCodeForDriveAppRemoveFolder1() { var folderId = ""; //フォルダIDを指定 var child = DriveApp.getFolderById(folderId); DriveApp.removeFolder(child); }
『 変数の説明 』
folderId = マイドライブから所属を解除したいフォルダIDを指定
child = マイドライブから所属を解除したいフォルダ
フォルダIDを確認する方法は、いくつかありますが、簡単なのはフォルダを開いた時のURL「https://drive.google.com/drive/folders/1wSmjp4v1S9lEg_PpsouIqLlMqOYu6Bhg」の赤文字部分がID部分になります。
スクリプトができたら▶ボタンでプログラムを実行してみましょう。所属を解除予定のフォルダはマイドライブへ追加をしておいて下さい。実行が完了するとマイドライブからフォルダIDで指定したフォルダの所属が解除されていると思います。マイドライブに移動して確認するか、フォルダの詳細情報を確認してみて下さい。詳細情報が表示されていない場合は、下記スクリーンショットのアイコンをクリックすると表示することができます。
詳細情報を確認すると、マイドライブにファイルが追加されていることが確認できると思います。
//指定したフォルダからフォルダの所属を解除するプログラム function sampleCodeForDriveAppRemoveFolder2() { var targetId = "17uvbQSq-0hctArve5RR477w3HjlQNhaL"; //親フォルダIDを指定 var targetFolder = DriveApp.getFolderById(targetId); var folderId = "1uLMzVdRcoso-YJ0MroYld8ARdyQU6hKT"; //フォルダIDを指定 var child = DriveApp.getFolderById(folderId); DriveApp.removeFolder(child); }
『 変数の説明 』
targetId = 対象のフォルダの親フォルダIDを指定
targetFolder = 親フォルダフォルダ
folderId = 所属を解除したいフォルダIDを指定
child = 解除予定のファイル
サンプルコード2では指定したフォルダから別のフォルダの所属を解除するコードになります。解除予定のフォルダはtargetIdで指定した親フォルダに所属している状態でプログラムを実行して下さい。実行が完了するとファイルの詳細情報からもパスにフォルダがなくなっていることが確認できると思います。
ちなみに、所属するフォルダが1つしかない状態でremoveFolderを使うと、removeFileと同じようにフォルダが孤立した状態になります。孤立した状態では、フォルダを探すのに苦労しますので、必要のない限りはどこかのフォルダに所属させるようにしましょう。
実際に実行するとパスの表記がどこにもないフォルダが出来上がります。
このフォルダを『孤立したフォルダ』と呼びますが、通常のGoogleドライブをブラウズしているだけではこのフォルダに到達することはできません。ですので、複数人でアカウントを共有している場合において、他の共有者からファイルを隠したいといった要望を叶える際に活用できる方法かもしれません。
『孤立したフォルダ』へアクセスする方法は下記の通り。
- ファイル名あるいは記載されている内容から検索する
- 「is:unorganized owner:me」で検索する
- ファイルURLで直接アクセスする
この3通りでしか『孤立したフォルダ』へアクセスする方法はないと思います。
フォルダ情報が削除されたからと言ってもGoogleドライブからフォルダが削除されたわけではないため、フォルダ名や説明欄等に記載されている文字列で検索にヒットします。その検索結果からアクセスするという方法が1の方法です。
2の方法は、知らない方も少なくないと思いますが、フォルダへの所属情報を失ったフォルダ/ファイルを検索する検索コマンドです。こちらを利用すれば『孤立したファイル』が検索結果に表示されます。ただし、『孤立したファイル』が大量にある場合はこちらの方法ではエラーが出て検索ができなくなります。Google公式ヘルプに小さく表記がされていますのでご確認下さい。「孤立したファイルを検索する」という部分になります。
3の方法はURLをご存知であればアクセスができます。
孤立したファイルは探すのに少し手間がかかりますので、共有アクセス者からファイルを隠したい場合に活用することができます。
まとめ
今回はremoveFolder()メソッドの使い方をスクリーンショットとサンプルコードで説明をしました。Google Apps Scriptで対象のフォルダを他のフォルダに移動させる時に使うコードになりますが、removeFolderだけではファイルを所属フォルダから解除させるだけなので、所属情報が削除されるだけで移動は完了することができません。ファイルを1つのフォルダから違うフォルダに移動させたい場合はaddFolder()メソッドを併用して移動予定先のフォルダに対象のフォルダを追加する必要があります。やり方についてはこちらの記事をご確認下さい。