1

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

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

而且我得到“找不到方法addToFolder(。(Line ...)”。我做错了什么?当我编写它时,他们的方法作为一个选项下降,但仍然找不到它。

4

4 回答 4

2

这个逻辑与你尝试的不完全一样......

这是一个工作示例:

function myFunction() {
var newFile = DocumentApp.create('New File');
var newFileID = newFile.getId()
var newFolder = DocsList.createFolder('test Folder')
DocsList.getFileById(newFileID).addToFolder(newFolder)
}
于 2012-10-23T11:17:39.553 回答
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);
于 2012-10-23T11:02:09.543 回答
1

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

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

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

我将此添加为 .addToFolder() 之后的行

newFile.removeFromFolder(DocsList.getRootFolder());
于 2012-11-02T14:05:46.667 回答
0

以下函数是一个简单的谷歌脚本,用于传递图像 URL。

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);
 }
于 2013-09-12T02:51:06.767 回答