2017-08-29 101 views
2

我的英语是一个漏勺和我在Javascript中的编程技巧一样。我在Google Drive的特定文件夹中有几个PDF文件(约10个)。每天一次,接近午夜,我必须在特定Google云端硬盘文件夹中分别移动这些文件(一对一)。 其实我手工做这个活动,所以我试图用一个简单的脚本自动化它。谷歌驱动器 - 如何将特定文件(.pdf)从一个特定的文件夹移动到另一个

我能够指向特定文件夹,但不能指向特定文件。 在Internet中发现的示例中,文件夹中包含的所有文件都被移至另一个文件夹,因此使用filesIterator技术。 但我不需要迭代,我需要指向特定的文件并将其移动到另一个文件夹。

这里我五(迷茫)的程序行:

function moveFiles(source_folder, dest_folder) { 

var source_folder = DriveApp.getFolderById('0B42Jhhzp_5X7QUlMdE9SZS0wMms'); 
var dest_folder = DriveApp.getFolderById('0B42Jhhzp_5X7TFZBMXpfeWpZNFk'); 

var file = getFilesByName('caa20170829.pdf'); 

// var files = source_folder.getFiles(); 
// Logger.log(file.getAs(MimeType.HTML).getDataAsString()); 

dest_folder.addFile(file); 
source_folder.removeFile(file); 
} 

该错误消息我得到:

ReferenceError: "getFilesByName" not defined. (line 6, file "move")

任何帮助,将不胜感激!


如从最大Deepfield(感谢,最大值)的建议,我编辑的行6如下

var file = DriveApp.getFilesByName('caa20170829.pdf'); 

和错误消息改变为

Impossible to find the method addFile(FileIterator). (line 11, file "move")

现在我编辑的11行如下

DriveApp.dest_folder.addFile(file); 

和错误消息更改另一个时间...

TypeError: Impossible to call the method "addFile" of undefined. (line 11, file "move")

感谢哈桑,我正在研究他建议的例子。 但是,如果有人会提供进一步的帮助...我提前感谢。

+2

你确定它是不是'DriveApp.getFilesByName'? –

+0

看看这个https://developers.google.com/drive/v3/web/folder –

+0

哈桑,非常感谢您的提示。 我编辑为你建议。实际上,现在听起来错误信息如下:无法找到addFile(FileIterator)方法。 (第11行,“移动”文件) – aldobz

回答

0

问题是DriveApp Api没有任何方法返回单个File。所以你必须通过FileIterator

首先你不必把参数放在function moveFiles(source_folder, dest_folder)source_folderdest_folder这个函数里面定义。但我认为你做了这个错误杜代码,你在互联网上找到:)

此外,这里有一些错误的建议:当你打电话给DriveApp.getFolderById(),API将返回给你Folder。所以,你不需要调用这个变种DriveApp了(例如DriveApp.dest_folder.addFile(file);是一个坏的调用,因为该方法addFile()Folder类型,dest_folder已经是Folder

所以,你可以试试这个,它为我工作:

source_folder= DriveApp.getFolderById('YourFolderID1') 
    dest_folder=DriveApp.getFolderById('YourFolderID2') 

    var files = source_folder.getFilesByName("YourFileName").next(); 
    dest_folder.addFile(files); 
    source_folder.removeFile(files); 

我希望它帮你:)

+0

嗨巴蒂斯蒂,我非常感谢你的帮助。 Simply GALACTIC !! 它在第一次工作,非常非常好! 非常感谢,并从意大利致以良好的问候。 Aldo – aldobz

相关问题