GoogleDriveはシステム上、フォルダをコピーすることができません
ここでは、GoogleAppsScriptでフォルダをコピーする方法をお伝えします。
参考サイト: Qiita: Google Driveでディレクトリごとまるっとコピーしてやるぜ! から引用させていただきました。
index.html
function myFunction() {
var folders = DriveApp.getFoldersByName("コピーサンプルデータ");
var dest = DriveApp.createFolder("コピーサンプルデータのコピー");
while(folders.hasNext()) {
var folder = folders.next();
folderCopy(folder, dest);
}
}
function folderCopy(folder, dest) {
var folders = folder.getFolders();
var files = folder.getFiles();
while(files.hasNext()) {
var file = files.next();
// file.makeCopy(dest);とすると、****のコピーというファイル名になるので…。
file.makeCopy(file.getName(), dest);
}
while(folders.hasNext()) {
var subFolder = folders.next();
var folderName = subFolder.getName();
var copyFolder = dest.createFolder(folderName);
folderCopy(subFolder, copyFolder);
}
}
・GoogleAppsScriptは5分以上起動し続けることができません。
そのため、重いフォルダをコピーする場合、処理がタイムアウトとなってしまうことがあります。
現状この対策方法はないので、コピーするフォルダを減らしましょう。
・ドライブアプリを入れて、ローカルにマウントしてからコピーするのが一番早いかもしれません笑