2017-05-25 21 views
0

在Google腳本中,我有一個文件夾對象(testFolder)和一個文件對象(testFile)。我有這兩行代碼:可以複製文件,無法添加Google腳本

testFolder.addFile(testFile);

testFile.makeCopy('this is a copy',testFolder);

第二行將文件正確地複製到文件夾中。 第一行似乎什麼都不做。我期待它添加對該文件的引用並將其放在該文件夾中。

我明顯有正確的對象,我是文件和文件夾的所有者,所以任何其他的想法?

謝謝

回答

0

您可以在Google雲端硬盤中創建新文件。但不能簡單地將文件移動到文件夾中。您必須複製到所需的文件夾,然後刪除舊文件。或者您必須直接在所需的文件夾位置創建文件。

+0

所以,我只想澄清,該文件已經存在,我使用的文件夾中對象,根據參考指南的addFile(兒童)方法:補充說:「給定文件此方法不會將文件移出其現有的父文件夾;文件可以同時擁有多個父文件「 – Mark

0

你得到'testFile'和'testFolder'對象的代碼是什麼?你是通過ID還是通過名字來引用它們?如果您的Google雲端硬盤中有多個相同名稱的文件夾,則可能導致此問題。下面是對我工作的腳本

var file = DriveApp.getFileById('YOUR_FILE_ID'); 
    var folder1 = DriveApp.getFolderById("YOUR_FOLDER1_ID"); 
    var folder2 = DriveApp.getFolderById("YOUR_FOLDER2_ID"); 
    file.makeCopy('another copy', folder1); 
    folder1.addFile(file); 
+0

嗨,謝謝你。該腳本創建文件夾和子文件夾,因此它們是唯一的。該文件被複制到正確的文件夾中的事實表明我正在拾取正確的文件和文件夾。我似乎無法得到它來添加文件(如UI中的CRTL-Z菜單'添加到文件夾')。該腳本基本上是創建一個僱員文件夾,我想添加公司的政策文件。但我只想要一個主副本,所以如果發生更改,每個人都可以在其員工文件夾中看到它(因爲他們實際上只是查看同一文檔)。這有意義嗎? – Mark

+0

我知道你想添加多個父文件夾到文件中。 folder.addFile()對我來說就像一個魅力,所以問題必須更深入。這甚至不會與任何共享權限衝突,因爲它們會自動更改 –

+0

是的,這是完全正確的。我很難過,因爲我發佈的兩行代碼是順序的 - 調試器似乎添加了文件(沒有錯誤消息),然後在下一行成功複製它。 (順便說一句,我只是把這份副本作爲支票)。 – Mark