2016-11-15 4 views
1

私の会社はGoogleスクリプトを使用して、毎日Googleドライブの重要なファイルをバックアップしています。スクリプトは、ドライブのルートにコピーするフォルダとサブフォルダと場所の正確なコピーを作成します。私の質問です:それは、ルートとは対照的に、事前に定義されたフォルダにコピーをドロップすることは可能ですか?ルートとは対照的に、定義済みのフォルダにコピーをドロップすることはできますか?

function start() { 
 
    
 
    var sourceFolder = "original"; 
 
    var targetFolder = "backup"; 
 
    
 
    var source = DriveApp.getFoldersByName(sourceFolder); 
 
    var target = DriveApp.createFolder(targetFolder); 
 
    
 
    if (source.hasNext()) { 
 
    copyFolder(source.next(), target); 
 
    } 
 
    
 
} 
 
    
 
function copyFolder(source, target) { 
 
    
 
    var folders = source.getFolders(); 
 
    var files = source.getFiles(); 
 
    
 
    while(files.hasNext()) { 
 
    var file = files.next(); 
 
    file.makeCopy(file.getName(), target); 
 
    } 
 
    
 
    while(folders.hasNext()) { 
 
    var subFolder = folders.next(); 
 
    var folderName = subFolder.getName(); 
 
    var targetFolder = target.addFolder(folderName); 
 
    copyFolder(subFolder, targetFolder); 
 
    } 
 
    
 
}

答えて

1

フォルダが使用できるように、そのフォルダIDを持っている事前定義されているのでこの方法Iを使用して

var target = predefined.createFolder(targetFolder) 
+0

var predefined = DriveApp.getFolderById(id); 

はその後にターゲットを変更scrが実行されるたびに、あらかじめ定義されたターゲットフォルダのコピーをrootにコピーしてくださいiptが実行されます。どういうわけか、あらかじめ定義されたフォルダにファイルを置くのではなく、その名前を借りてファイルを追加する。 –

+0

スクリプトが複数回実行されると、定義済みフォルダ内に新しい「バックアップ」フォルダが作成されます。また、「オリジナル」のフォルダが1つしかない場合は、検索を続ける必要はありません。var sourceFolder = DriveApp.getFolderById(id); – utphx

+0

申し訳ありませんが、私は意味:var source = DriveApp.getFolderById(id); – utphx

関連する問題