Google云端硬盘:将文件移至文件夹

时间:2013-03-13 13:43:08

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

我想了解当您选择谷歌驱动器脚本http://www.google.com/script/start/时作为示例列出的moveFileToFolder脚本(单击“开始脚本”,然后在“创建脚本”菜单中选择“驱动器”选项)

代码如下。我的问题是如何更改此代码以便可以将文件“Austin”移动到“Texas”文件夹中?这假设文件“Austin”是一个google doc,目前位于我的主要google驱动器文件列表中,“Texas”文件夹目前也位于我的主要google驱动器列表中。

还有一些关于在驱动器中移动文件的帖子,我理解主要概念,但我似乎无法成功获取文件或文件夹ID。任何帮助非常感谢?

/**
 * This script moves a specific file from one parent folder to another.
 * For more information on interacting with files, see
 * https://developers.google.com/apps-script/class_file
 */
function moveFileToFolder(fileId, targetFolderId) {
  var targetFolder = DocsList.getFolderById(targetFolderId);
  var file = DocsList.getFileById(fileId);
  file.addToFolder(targetFolder);
};

3 个答案:

答案 0 :(得分:3)

现在我有相同的任务并使用了这段代码:

  var file = DriveApp.getFileById(fileId)
  var folder = DriveApp.getFolderById(folderId); 
  folder.addFile(file);

答案 1 :(得分:0)

查看https://gist.github.com/suntong001/7955694中的功能getFolderByName,了解如何通过名称获取文件夹ID。对于文件,原则是相同的。

答案 2 :(得分:0)

function addDocToPublic() {
// Create random filename
var fn = "doc" + Math.floor(10000 * Math.random()) + ".doc";
// Create file with very MIME TYPE and return file ID
var fh = DriveApp.createFile(fn, "Das ist das " + fn + " Testfile", MimeType.MICROSOFT_WORD);
// Get first/next Iterator ID ( = folder ID) for Folder (with name PUBLIC)
var fid = DriveApp.getFoldersByName("PUBLIC").next();
// Copy File to Folder (using file and folder IDs
fh.makeCopy(fn,fid);
// Remove Source File
fh.setTrashed(true);
}

...也许那样......