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++;
};
}
我创建了一个新的电子表格,我是它的所有者,现在脚本找到了它。
我创建了 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++;
};
}
我创建了一个新的电子表格,我是它的所有者,现在脚本找到了它。