我正在尝试将新创建的Google文档文件重新定位到google驱动器中的文件夹(使用Google Apps)。
var newFile = DocumentApp.create('New File');
var newFileID = Docs.getFileById(newFile);
var newFileRelocated = newFileID.addToFolder(newFolder);
而且我得到了“无法找到方法addToFolder(。(Line ...)”。我做错了什么?当我编写它时,它们会作为一个选项掉下来但仍然无法找到它。< / p>
答案 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);
}