DriveApp.searchFiles не работи за конкретно търсене

Имам проблем с DriveApp.searchFiles() в Apps Script.

Ако търся файлове в Диск, чиито имена са като тези (имена на книги):

Rif_Lettura_Nussbaum_02012014

or

La Torre_Lalatta_Legalizzare_Corriere_23122013

търсенето не намира нищо в Диск.

function test(){


  var title='Rif_Lettura_Nussbaum_02012014';
  //Uncomment to try the working sample
  //var title='Rif_Lettura_Nussbaum_02012';



  var candidateFiles=DriveApp.searchFiles('title contains "'+title+'"');
  var count=0;
  var fileCandidato;
  while (candidateFiles.hasNext()){
    count++;
    fileCandidato=candidateFiles.next();
    if(fileCandidato.getName().indexOf(title)!=-1){
      Logger.log("Finded: "+fileCandidato.getName());
    }

  }

  Logger.log(""+count+" files found with title "+title);

}

По същество изглежда, че функцията searchFiles() работи, ако думите, разделени с интервал, имат дължина по-малка или равна на 26 (това е броят на буквите от английската азбука).

Някой да е намирал тази грешка и да знае решение?


person Francesco Barreca    schedule 10.01.2014    source източник


Отговори (2)


Бях изправен пред същия проблем и нека ви кажа, че няма нищо общо с това колко дълго е името на файла или папката. Всичко е за това - или +.

Пример: Работи перфектно, ако потърся това: HELLO-STACKOVERFLOW-WHATS-UP-HOW-YOU-DOING-GOOD-BYE

function searchDrive() {

  var myFolder = "HELLO-STACKOVERFLOW-WHATS-UP-HOW-YOU-DOING-GOOD-BYE"

  var folders = DriveApp.searchFolders(
     'title contains "'+ myFolder +'"');
  while (folders.hasNext()) {
     var folder = folders.next();
     Logger.log(folder.getName());
 }
}

Въпреки това, ако търся това: HELLO - STACKOVERFLOW нищо не се случва, същото е и с HELLO + STACKOVERFLOW.

В заключение: функцията за търсене DriveApp не може да обработва +, - в името на файл или папка.

person maeq    schedule 17.09.2014

Любопитен случай, ако използвате следната работа:

...
//var title = 'Rif_Lettura_Nussbaum_02012014';
var title = 'Rif_Lettura_Nussbaum_02012'; // title.length <= 26
...
var candidateFiles = DriveApp.searchFiles('title contains "' + title + '"');
...

Следното обаче също би свършило работа:

...
var title = 'Rif_Lettura_Nussbaum_02012014';
...
var candidateFiles = DriveApp.searchFiles('title = "' + title + '"');
...

В документацията не се споменава нищо за това или дали има ограничение от 26 знака.

Виждам, че отворихте Проблем (Проблем 3549: DriveApp .searchFiles не работи за дълги думи), ще постави там връзка към този въпрос.

person wchiquito    schedule 11.01.2014