gpt4 book ai didi

google-apps-script - 返回事件电子表格的完整文件夹路径

转载 作者:行者123 更新时间:2023-12-02 04:39:55 28 4
gpt4 key购买 nike

我有一个共享文件夹结构中的电子表格。此共享文件夹结构在任何给定时间由 3-9 人共享。现在,文件夹结构本身在任何人的 Google Drive 上都是不变的。但是结构的“根”可能会因人的喜好而有所不同。 (我希望这是有道理的。)

例子:

Folder that is shared: RootFolder
Folder structure of RootFolder: RootFolder>First_Level_Folder>Second_Level_Folder>Third_Level_Folder
Spreadsheet that this question pertains to: SS_
Where SS_ resides in: Second_Level_Folder
People that are collaborating: P1 P2 P3 P4 P5

现在,RootFolder 及其所有内容都在人们之间共享。他们可以将 RootFolder(共享)放在各自 Google 云端硬盘中的任何位置。

例子:

P1: P1Root>P1First_Folder>RootFolder
P2: P2Root>RootFolder
P3: P3Root>P3First_Folder>P3Second_Folder>RootFolder
P4: P4Root>P4First_Folder>RootFolder

因此,如果脚本附加到 SS_ 并且假设它在与 SS_ 相同的文件夹中“寻找另一个电子表格”,我需要知道 SS_ 的完整文件夹路径。这个文件夹路径对不同的人来说是唯一的。 (P1、P2、P3 等)

所以我的问题是,我可以通过脚本找到SS_的文件夹路径吗?这样,每次任何人运行脚本时,路径都将是他们的“正确路径”,并且不会阻碍其余过程?

我试图寻找 getFolderPath(spreadsheet) 类型的函数,但没有成功。

最佳答案

如果您只需要搜索当前电子表格的直接父文件夹,则不需要完整的文件夹路径。

请务必注意,Google 云端硬盘上的文件可能“位于”多个文件夹中。因此,即使对于单个用户而言,确定完整的文件夹路径也不是绝对的。甚至文件夹也可以在多个文件夹中,虽然我没有测试过,但我认为你可以在子文件夹中有一个父文件夹。因此,如果您尝试获取完整路径,如果不注意检测这种循环情况,您可能会陷入无限循环。

以下是获取当前电子表格的直接父文件夹的方法:

function logParents() {
var ss = SpreadsheetApp.getActive(); //current spreadsheet
var directParents = DriveApp.getFileById(ss.getId()).getParents();
while( directParents.hasNext() )
Logger.log(directParents.next().getName());
}

在上面的代码中,我只是记录了每个父项的名称(如果有多个),但是要在每个父项中进行搜索,您只需调用 searchFiles 而不是 getName.

关于google-apps-script - 返回事件电子表格的完整文件夹路径,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21052865/

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