在google驱动器文件夹中,我有一个名为“Tønseth和Øyen”的文档。 folder.getFilesByName(“Tønseth和Øyen”)找不到它。如果我将其名称放在getFilesByName中,则会找到我拥有的每个其他文件。它与“Ø”有关吗?还有另外一种方法吗?
答案 0 :(得分:3)
是。 getFilesByName()
无法找到ø
和Ø
的此类字符。但您可以使用Drive API检索文件。通过使用此方法,还可以检索包含变音符号的文件名。请确认以下脚本。
我认为这是最简单的。
var files = DriveApp.searchFiles('title contains "Tønseth and Øyen" and trashed=false');
while (files.hasNext()) {
var file = files.next();
Logger.log("id=%s, name=%s", file.getId(), file.getName())
}
>>> id=#####, name=Tønseth and Øyen
如果“Tønseth和Øyen”文件只是Google云端硬盘上的文件,您可以使用以下简单脚本。这也可以替换为您问题的folder.getFilesByName("Tønseth and Øyen")
。
var file = DriveApp.searchFiles('title contains "Tønseth and Øyen" and trashed=false').next();
要使用此脚本,请在Advanced Google Services为脚本2启用Drive API,在API console为脚本2和脚本3启用Drive API。
var params = {
q: "title contains 'Tønseth and Øyen' and trashed=false",
fields: "items(id, title)"
};
var res = Drive.Files.list(params);
Logger.log(res)
{
"items": [
{
"id": "#####",
"title": "Tønseth and Øyen"
}
]
}
如果您不想使用高级Google服务(Drive API v2),您还可以使用UrlFetchApp.fetch()
检索文件。在这种情况下,您可以使用Drive API v3。
UrlFetchApp.fetch()
。 (Drive API v3)var filename = "Tønseth and Øyen";
var url = "https://www.googleapis.com/drive/v3/files?fields=files(id,name)&q=name+contains+'" + filename + "' and trashed=false";
var params = {
method: "GET",
headers: {"Authorization": "Bearer " + ScriptApp.getOAuthToken()},
muteHttpExceptions: true
};
var res = UrlFetchApp.fetch(url, params).getContentText();
Logger.log(res)
{
"files": [
{
"id": "#####",
"name": "Tønseth and Øyen"
}
]
}