google 应用程序脚本。按文件名将文件复制到一个驱动器单独的文件夹

google apps script. copy files to one drive separate folders by file names

我想将文件从 google 驱动器上传到一个驱动器,根据文件名的一部分创建单独的文件夹。例如,文件将是:John Doe_story1;约翰 Doe_story2;简Doe_story1;简Doe_story2;等等。所以这些文件应该上传到单独的文件夹如“/samplefolder/John Doe/Stories/”; “/samplefolder/JaneDoe/Stories/”;等等。目前我有一个 google 应用程序脚本来将文件上传到“/samplefolder”。脚本是在@Tanaike的帮助下制作的,如下:

function myFunction() {
var prop = PropertiesService.getScriptProperties();
var odapp = OnedriveApp.init(prop);
var source = DriveApp.getFolderById("###"); // Please put your folder ID.
var files = source.getFiles();
while (files.hasNext()) {
var file = files.next();
odapp.uploadFile(file.getId(), "/samplefolder/"); // Please set the destination folder name. In this case, the folder name in OneDrive.
 }
}

如果有人能帮助我完成脚本,我将不胜感激。预先感谢您的帮助。

如果文件名的格式是For instance the files would be: John Doe_story1; John Doe_story2; Jane Doe_story1; Jane Doe_story2; and ect.这样的常量,下面的修改怎么样?

发件人:

odapp.uploadFile(file.getId(), "/samplefolder/");

收件人:

odapp.uploadFile(file.getId(), `/samplefolder/${file.getName().split("_")[0]}/Stories/`);
  • OnedriveApp的库中,当文件夹名称不存在时,创建文件夹,并将文件上传到创建的文件夹中。当文件夹名称存在时,文件上传到现有文件夹。