使用DriveApp移动文件夹(及其内容)

时间:2018-10-21 21:27:46

标签: google-apps-script google-drive-api

DriveApp没有“移动”功能(截至今天)。如何移动此文件夹(及其所有内容)?

我希望移动source_folder(当前位于parent_folder中)

var source_Folder = DriveApp.getFolderById(source_id);
var parent_Folder = DriveApp.getFolderById(parent_id);

并将其放在target_folder内:

var target_folder = DriveApp.getFolderById(target_id);

我已经有source_id,parent_id和target_id

1 个答案:

答案 0 :(得分:1)

我环顾四周,对此问题也有类似的问题/答案。我这样做是(希望)使遇到相同问题的其他人容易。

  

Google云端硬盘中的“文件夹”的工作方式与   Gmail。

您可以在Google云端硬盘中的多个位置添加文件夹。它仍然只是一个文件夹(而不是副本),因此可以在添加文件夹的所有位置使用其内容。

  

模拟移动source_folder,您   可以:

1)首先将source_folder添加到target_folder

target_folder.addFolder(source_folder);

2)从其父级中删除source_folder。

parent_folder.removeFolder(source_folder);
  

完整的示例代码:(注意:您需要文件夹ID)

function move_folder() { // id looks like this: 1XqH79csKkPMvTsCxMUzkkpURETKHJ
   var source_id = "[insert_folder_id]"; // folder you wish to move
   var parent_id = "[insert_folder_id]"; // where the folder is currently
   var target_id = "[insert_folder_id]"; // where you want to put the folder

   var source_Folder = DriveApp.getFolderById(source_id);
   var parent_Folder = DriveApp.getFolderById(parent_id);
   var target_Folder = DriveApp.getFolderById(target_id);

   target_folder.addFolder(source_folder);    // source_folder now 2 places
   parent_folder.removeFolder(source_folder); // cleanup
 }
  

如何获取folder_id。

在这里也找到了很好的答案:Implement a folder move function in Google Dirve