将文件添加到文件夹

时间:2012-10-23 10:06:26

标签: google-apps-script

我正在尝试将新创建的Google文档文件重新定位到google驱动器中的文件夹(使用Google Apps)。

var newFile = DocumentApp.create('New File');
var newFileID = Docs.getFileById(newFile);
var newFileRelocated = newFileID.addToFolder(newFolder);

而且我得到了“无法找到方法addToFolder(。(Line ...)”。我做错了什么?当我编写它时,它们会作为一个选项掉下来但仍然无法找到它。< / p>

4 个答案:

答案 0 :(得分:2)

您的newFolder可能不是预期的。是string吗?你定义它的地方?

无论如何,addToFolder中预期的参数必须是使用Folder中的其他方法获得的DocsList对象。例如DocsList.getFolder("/path/to/folder")DocsList.getFolderById("folder-id")等等。

您的代码似乎存在其他“不一致”,我会粘贴您要尝试的内容:

var newDoc = DocumentApp.create('New Google Doc');
//a DocumentApp file and a DocsList file are not the same object, although they may point to the same Google Doc
var newFile = DocsList.getFileById(newDoc.getId());
var folder = DocsList.getFolder("/path/to/folder"); //I'm assuming the folder already exists
newFile.addToFolder(folder);

答案 1 :(得分:2)

这个逻辑并不像你想的那样......

这是一个工作示例:

function myFunction() {
var newFile = DocumentApp.create('New File');
var newFileID = newFile.getId()
var newFolder = DocsList.createFolder('test Folder')
DocsList.getFileById(newFileID).addToFolder(newFolder)
}

答案 2 :(得分:1)

为了补充一点,我最近处理了这个问题。

我注意到默认位置是将DocsList.create()文件存储在根文件夹(又名My Drive)中。

如果您正在处理大量文件,这可能会导致真正的头痛。

我将此添加为.addToFolder()

之后的行
newFile.removeFromFolder(DocsList.getRootFolder());

答案 3 :(得分:0)

以下功能是一个简单的Google脚本,可以传入图片网址。

function fetchImageToDrive_(imageUrl)
 {
 //Fetch image blob
    var imageBlob = UrlFetchApp.fetch(imageUrl).getBlob();
 //Create image file in drive
    var folder = DocsList.getFolder('test Folder');
    folder.createFile(imageBlob);
 }