gpt4 book ai didi

google-apps-script - 从 DocsList 迁移到 DriveApp?

转载 作者:行者123 更新时间:2023-12-04 06:41:31 24 4
gpt4 key购买 nike

我一直在为一个大项目使用 DocsList,它运行良好。最近,错误不断涌现,它们大多与获取文件夹或文件有关。研究的时候发现DriveApp已经更新了。问题是 DriveApp 没有像 DocsList 那样的搜索参数。

例如,如果我有这样的文件夹结构:

Root
-Main Folder 1
--Folder 1
--Folder 2
-Main Folder 2
--Folder 1
--Folder 2

要在“主文件夹 2”中获取文件夹“文件夹 1”,我可以像这样输入搜索参数:DocsList.getFolder('Main Folder 2/Folder 1')

使用 DriveApp,我无法理解如何使用它。据我了解,我必须为 DriveApp 做这样的事情:
var mainFolders = DriveApp.getFoldersByName('Main Folder 2');
while (mainFolders.hasNext()) {
var mainFolder = termFolders.next();
var subFolders = termFolder.getFoldersByName('Folder 1');
// Something like this...
}

因此,如果我有一个更“深”的文件夹,我将不得不进一步扩展它..?

我觉得他们并没有让事情变得更容易,而是让所有的 FileIterators 和 FolderIterators 变得更加复杂。只是让代码很难“获取”文件或文件夹。

所以基本上,这个线程的重点是找出使用 DocsList 来导航和编辑 Drive 文件/文件夹的人如何迁移到 DriveApp 并实现相同的事情。

不同场景的小/离散示例将非常有帮助。我可以从那里拿走。如果你们认为我不清楚我需要什么帮助,我会对此进行更多编辑。

最佳答案

wchiquito 评论中的讨论很有趣,但访问所有链接很耗时。

底线:不会有 getFolderByPath() 的 DriveApp 版本,因此您需要推出自己的版本。在 the Google+ group ,Faustino 提出了一个变通方法,Eric 对其进行了改进。在这里,添加了一个检查以允许以“/”开头的路径。

function getFolderByPath(path) {
var parts = path.split("/");

if (parts[0] == '') parts.shift(); // Did path start at root, '/'?

var folder = DriveApp.getRootFolder();
for (var i = 0; i < parts.length; i++) {
var result = folder.getFoldersByName(parts[i]);
if (result.hasNext()) {
folder = result.next();
} else {
return null;
}
}
return folder;
}

有了这个,你可以简单地做 myFolder = getFolderByPath('Main Folder 2/Folder 1'); .您将最终获得一个 DriveApp 文件夹实例。

关于google-apps-script - 从 DocsList 迁移到 DriveApp?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20179429/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com