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

问题描述

我创建了3个无标题的Google Spreadsheets来测试此脚本。在“我的云端硬盘”中搜索标题:无标题或仅无标题,这三个都找到了,但是在此脚本中,searchFiles方法找到了Doc和Slide,但没有找到Spreadsheet,而getFilesByName找不到任何内容!我也尝试使用getFilesByName进行“ untitled ”,但仍然没有找到。有什么想法吗?

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):

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

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++;
        };
    }  
}

对于DriveApp.searchFiles(标题包含“无标题”'):

您确定您的代码找不到电子表格吗?当我尝试您的代码时,它发现所有无标题文件都可以。唯一的区别是,我在while语句中包含了变量声明,因此变量中没有“旧”值。旁注...由于它使用参数“标题包含”,以搜索包含无标题单词的任何内容,它将返回结果文件 any 单词“无标题”。因此,如果您有一个文件“ One-Offs Untitled”,它将作为搜索结果返回。请记住这一点!

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++;      
    };
}
,

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