尝试复制文件而不知道其ID或名称

时间:2017-07-17 02:58:15

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

我正试图找出一种方法来检查我正在循环的一组文件夹中是否有文件(google docs文件)。如果它在文件夹中有一个文件(只有一个文件),我想复制它。

我不确定如何访问该文件并使用makeCopy()方法,因为我不知道文件夹中文件的名称/ ID。

非常感谢任何帮助。

2 个答案:

答案 0 :(得分:1)

以下示例脚本怎么样?这个示例检索folderId中的文件。如果文件夹中有文件,则复制该文件。根据您的问题,发现文件夹中只有一个文件。因此,在此脚本中,将复制一个文件。

示例脚本:

var folderId = "### folder ID ###";
var folder = DriveApp.getFolderById(folderId);
var files = folder.getFiles();
var file = [];
while (files.hasNext()) {
  file.push(files.next());
}
if (file.length > 0){
  file[0].makeCopy();
}

其他示例脚本:

由于复制的文件只有一个,因此下面的示例脚本也可用于您的情况。这可能比上面更简单。

var folderId = "### folder ID ###";
var files = DriveApp.getFolderById(folderId).getFiles();
files.hasNext() && files.next().makeCopy();

如果您想使用文件夹名称且文件夹名称只是云端硬盘中的一个,请使用以下脚本。

var folderName = "### folder name ###";
var files = DriveApp.getFoldersByName(folderName).next().getFiles();
files.hasNext() && files.next().makeCopy();

答案 1 :(得分:0)

您拥有文件夹的ID(或者至少您有他们的名字,以便您可以使用files.list?q=name="foo"

获取他们的ID

获得文件夹ID后,您可以使用files.list?q="folderID" in parents

查找其中的所有文件