gpt4 book ai didi

javascript - DriveApp : searching for folders with non-Latin names

转载 作者:行者123 更新时间:2023-11-30 20:44:51 24 4
gpt4 key购买 nike

我在 Folder 类的 'getFoldersByName()' 方法中遇到了问题。如果我将西里尔字符串作为参数传递,它会按原样返回 FolderIterator 的实例,但调用 'next()' 方法总是会引发错误('iterator已经到达终点')。

下面的函数在父文件夹中找到具有给定名称的子文件夹并返回子文件夹。如果子文件夹已经存在,该函数将返回它而不是创建一个新文件夹。不幸的是,这仅适用于拉丁子文件夹名称。

function findSubfolder(){

var subfolderName = "Папка папка"; //string containing cyrillic characters

var parentFolder = DriveApp.getFolderById(parentFolderId);

var iterator = parentFolder.getFoldersByName(subfolderName);

var folder = (iterator.hasNext()) ? iterator.next() : parentFolder.createFolder(subfolderName);

return folder;

}

值得一提的是,当我检查 (existingSubfolder.getName() == subfolderName) 时,它返回“true”。

最佳答案

我不确定这对您的情况是否有用。因此,请将此视为几个答案之一。在我的环境中,我也有像你这样的情况。在我的例子中,它发生在 getFilesByName() 时。 Ref我使用 searchFiles() 而不是 getFilesByName() 解决了这个问题。所以我认为这种方式可能可以用于您的情况。修改后的脚本如下。它使用 searchFolders() 而不是 getFoldersByName() 作为解决方法。

function findSubfolder(){
var subfolderName = "Папка папка"; //string containing cyrillic characters
var parentFolder = DriveApp.getFolderById(parentFolderId);
var iterator = parentFolder.searchFolders("title contains '" + subfolderName + "'"); // Modified
var folder = (iterator.hasNext()) ? iterator.next() : parentFolder.createFolder(subfolderName);
return folder;
}

如果我误解了你的问题并且这对你没有用,我很抱歉。

关于javascript - DriveApp : searching for folders with non-Latin names,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48832128/

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