【问题标题】:addToFolder(): The copy version of the file is deleted, if the original version is deletedaddToFolder():文件的副本版本被删除,如果原版本被删除
【发布时间】:2012-07-14 16:55:45
【问题描述】:

我几天前开始使用 google 脚本进行开发,最近加入了 stackoverflow。我对 addToFolder() 函数有疑问。我有以下代码将我的新电子表格复制到我的 Google Drive 中的文件夹(测试/表格)中:

var ss = SpreadsheetApp.create("test");
var ssID = ss.getId();
DocsList.getFileById(ssID).addToFolder(DocsList.getFolder("test/sheets"));

我的问题是,现在我有同一个文件的 2 个版本(一个在我的 Google Drive 文件夹的根目录中,另一个在 test/sheets 文件夹中),每当我尝试删除其中一个副本时,另一个副本是也被删除了。有没有办法删除旧文件并保留新文件,或者有没有办法首先在所需文件夹中创建文件?


编辑:

感谢您的快速回复。我玩了几个小时,但仍然无法将文件复制到目标文件夹。问题是,即使我使用文件的 makeCopy 方法,仍然 addToFolder 是提及文件夹的唯一选项。同样,这最终在目标文件夹中具有标记的文件名。 我在复制方法时遇到了同样的问题。
这是我的新代码:

var SetLocationFile = "icompare/sheets/stocks" 
var FolderID = DocsList.getFolder(SetLocationFile); 
var FileID = DocsList.getFileById(ssID); 
FileID.makeCopy("test3").addToFolder(FolderID);

【问题讨论】:

  • 我只想问一个问题,以确保我理解您的意思:您如何看待文件夹的内容?您使用驱动器浏览器界面还是系统查找器(或资源管理器)?如果在浏览器中,您使用什么“视图”?好吧,我知道这是 3 个问题 ;-) 原谅我
  • 我使用列表视图在 Google Drive 浏览器中查看我的文件夹内容。我的互联网浏览器是谷歌浏览器!

标签: copy google-apps-script directory google-sheets


【解决方案1】:

Google Docs\Google Drive 中的文件夹实际上是标签。当您将文件“添加”到文件夹“test/sheets”时,您不会复制文件,只需将标签“test/sheets”附加到它。现在,相同的文件显示在“test/sheets”文件夹(即所有带有标签“test/sheets”的文件列表中)和根目录中。如果您希望复制该文件,您应该使用copy 方法。 (如果我误解了你的问题,请告诉我。)

【讨论】:

  • 啊哈!曙光初现。那为什么他们称它们为“文件夹”?无论如何,感谢您的帮助。我将文件夹视为容器,但没有任何意义。
【解决方案2】:

我知道这是一个老问题,但您可以简单地使用 .removeFromFolder(DocsList.getRootFolder()); 从根文件夹中删除文件。

【讨论】:

    【解决方案3】:

    我也想知道这个问题的答案.. API 甚至不提供创建电子表格并将其放置在特定地图中的方法似乎相当“奇怪”?不,我不想要文件的副本,我希望文件在特定地图中,而不是在其他地图中......

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-01-24
    • 1970-01-01
    • 1970-01-01
    • 2018-01-16
    • 1970-01-01
    相关资源
    最近更新 更多