Обратите внимание, что ваша функция mostRecentFiIeInFolder
на самом деле никогда не использует папку и никогда не проверяет, что файлы имеют правильный тип, то есть фактически являются файлами Google Docs.Таким образом, если искомое имя не должно было ничего найти (т.е. в целевой папке нет недавнего файла с таким именем), но в другом месте вашего накопителя был какой-то альтернативный файл, который не является файлом Google Docs, ваш скрипт найдет его.и относитесь к нему как к чему-то, чего нет.
Решение состоит в том, чтобы ограничить поиск нужной вам папкой, и опять-таки по фактическому миметипу Документов Google:
function testIt() {
var folderIds = [
"", // Search all of Drive
"123428349djf8234", // Search that specific folder
];
// Log (in Stackdriver) the file id of the most recently created Google Docs file with the name "some name" in the various folders:
folderIds.forEach(function (folderId) {
console.log(getMostRecentFileIdWithName("some name", folderId, MimeType.GOOGLE_DOCS));
});
}
function getMostRecentFileIdWithName(fileName, folderId = "", mimeType = "") {
// If a folder was given, restrict the search to that folder. Otherwise, search with
// DriveApp. (Throws an error if the folderId is invalid.)
var parent = folderId ? DriveApp.getFolderById(folderId) : DriveApp;
// I assume your fileName variable does not contain any unescaped single-quotes.
var params = "name='" + fileName + "'";
// If a mimetype was given, search by that type only, otherwise search any type.
if (mimeType)
params += " and mimeType='" + mimeType + "'";
var matches = parent.searchFiles(params),
results = [];
// Collect and report results.
while (matches.hasNext())
results.push(matches.next());
if (!results.length)
throw new Error("Bad search query \"" + params + "\" for folder id = '" + folderId + "'.");
// Sort descending by the creation date (a native Date object).
// (a - b sorts ascending by first column).
results.sort(function (a, b) { return b.getDateCreated() - a.getDateCreated(); });
return results[0].getId();
}
Подробнее одопустимые параметры поиска в документации Drive REST API , а также дополнительные сведения о собственной реализации скрипта приложений в документации DriveApp
.