Google-App-Scripts-搜索文件未找到电子表格

Google-App-Scripts-Search files does not find spreadsheet

我创建了 3 个未命名的 Google 电子表格来测试这个脚本。在我的云端硬盘中搜索 title:untitled 或只是 untitled 找到了所有三个,但在此脚本中,searchFiles 方法找到了 Doc 和 Slide,但没有找到 Spreadsheet,getFilesByName 没有找到任何东西!我还用 getFilesByName 尝试了“untitled”,但仍然找到了 none。有什么想法吗?

function findUntitledFiles() {
  Logger.log("Begin findUntitledFiles()");
  var fileName = "*untitled*";
  var file, folder , filesIt , foldersIt;
  filesIt = DriveApp.searchFiles(' title contains "untitled" ') ;  // did not find spreadsheet
//  filesIt = DriveApp.getFilesByName(fileName) ;   // found none
  while (filesIt.hasNext() )  {
    file = filesIt.next() ;
    Logger.log("file.getName() = " + file.getName() );
    foldersIt = file.getParents() ;
    folderName = (foldersIt.hasNext()) ? foldersIt.next().getName() : "unknown" ;
    Logger.log( "folder  " + folderName + "    file name: " + file.getName() );
  } 
}

对于 DriveApp.getFilesByName(文件名):

fileName 应包含文件名的实际字符串。据我所知,不允许使用通配符。此外,幻灯片、文档和 sheet 都有不同的文件名 - 无标题演示文稿、无标题文档、无标题传播sheet。您可以通过这种方式搜索它们(如果您只是专门查看文档、sheets、幻灯片):

function findUntitledFilesByName() {
    var fileCnt = 0;  
    var fileNames = ["Untitled presentation", "Untitled spreadsheet", "Untitled document"];

    for (var fileName in fileNames) {
        var files = DriveApp.getFilesByName(fileNames[fileName]);
        while (files.hasNext()){
            var file = files.next();
            var folders = file.getParents();
            var folderName = (folders.hasNext()) ? folders.next().getName() : "unknown" ;
            console.log( "folder  " + folderName + "    file name: " + file.getName());
            fileCnt++;
        };
    }  
}

For DriveApp.searchFiles('title contains "untitled"'):

您确定您的代码没有找到价差sheet?当我尝试你的代码时,它发现所有无标题文件都很好。唯一的区别是我在 while 语句中有变量声明,因此变量中没有 'old' 值。旁注...因为它使用 'title contains' 参数来搜索任何包含无标题一词的内容,它将 return 结果 any 文件名,里面有单词 'untitled'。因此,如果您有一个文件“One-Offs Untitled”,该文件将作为搜索结果 returned。请记住这一点!

function findUntitledFilesUsingSearchFiles() {
    var fileCnt = 0;
    var files = DriveApp.searchFiles(' title contains "untitled" ') ;

    while (files.hasNext()){
        var file = files.next();
        var folders = file.getParents();
        var folderName = (folders.hasNext()) ? folders.next().getName() : "unknown" ;
        console.log( "folder  " + folderName + "    file name: " + file.getName());
        fileCnt++;      
    };
}

我创建了一个新的电子表格,我是它的所有者,现在脚本找到了它。