2017-05-01 6 views
1

Ich versuche, einige Dateien von meinem Laufwerk mit diesem zu löschen:löschen einige Google-Dateien in einem Ordner Laufwerk von Such

function deleteFiles(){ 
var files = DriveApp.searchFiles('title:720p'); 
    Logger.log(files); 
    //Logger.log(files.next().getName); 
    while (files.hasNext()) { 
    // files.next().setTrashed(true); 
    //Logger.log(files.next().getName()); 
    Logger.log('hola'); 
    } 
} 

Aber ich Error: Invalid argument:q in allen kommentierten Zeilen, auch in der while-Schleife erhalten. Der erste Logger zeigt Folder Iterator, also sollte alles in Ordnung sein ...

Dateien existieren! und alle haben unterschiedliche Namen, aber sie haben "720p" in ihren Namen gemeinsam.

Außerdem, und ich konnte dies noch nicht implementieren, ich muss nur diese Dateien löschen, die nur in einem bestimmten Ordner sind.

Antwort

1

Es scheint Ihr Suchbegriff in der Mitte oder am Ende der Datei Name oder Titel. Versuchen Sie es zu benutzen, es scheint für mich zu funktionieren. https://developers.google.com/drive/v3/web/search-parameters

function deleteFiles() { 
 
    var searchTerm = "12345test" 
 
    var searchFor ="fullText contains '" + searchTerm + "'"; //single quotes are needed around searchterm 
 
var files = DriveApp.searchFiles(searchFor); 
 
while (files.hasNext()) { 
 
    var file = files.next(); 
 
    Logger.log(file.getName()); 
 
    // file.setTrashed(true) 
 
} 
 
} 
 

+1

Excelent !!!! Ich danke dir sehr!! –

+0

Ja, denkt daran, es wird jede Datei finden, die diesen Begriff auch enthält – OblongMedulla

0

könnten versuchen, so etwas wie this-

function deleteFiles() { 
 
// Log the name of every file named "12345test" in the user's Drive. 
 
var files = DriveApp.getFilesByName('12345test'); 
 
while (files.hasNext()) { 
 
    var file = files.next(); 
 
    Logger.log(file.getName()); 
 
    // file.setTrashed(true) 
 
} 
 
}

+1

Hallo, ich kann nicht getFilesbyName verwenden, weil es eine Menge von Dateien mit unterschiedlichen Dateinamen, aber alle gemeinsam haben, „720p“ in ihnen ... Suchen nach Verlängerung könnte auch helfen ... –

+0

Ich habe eine neue Antwort hinzugefügt – OblongMedulla

0

Blick auf den Advanced Drive Service und die Option Abfrage

+0

Ich habe das versucht, aber manchmal funktioniert es, und manchmal nicht (obwohl ich nichts im Laufwerk geändert habe). Gibt es eine Möglichkeit, nach Erweiterungen zu suchen? –

+0

https://developers.google.com/drive/v3/web/search-parameters – pinoyyid

+0

ich kann nichts dort beschrieben verwenden, alle meine suche geben 0 ergebnisse ... meine suche sollte sein: 'name enthält '720p' und "folderid" in Eltern ". –

0

hier ist eine andere Art und Weise "title xxxx enthält", searchFiles Technik

function deleteFiles() { 
 
    var searchTerm = "12345test" 
 
    var searchFor ="title contains '" + searchTerm + "'"; //single quotes are needed around searchterm 
 
var files = DriveApp.searchFiles(searchFor); 
 
while (files.hasNext()) { 
 
    var file = files.next(); 
 
    Logger.log(file.getName()); 
 
    // file.setTrashed(true) 
 
} 
 
}

+1

dies ist mein erster Ansatz und hat nicht funktioniert, ich habe 0 Suchergebnisse ... –

+0

Es funktioniert gut für mich- Welche Art von Datei und Name suchen Sie, ich kann versuchen, zu duplizieren? Wenn Sie eine Datei namens 12345test erstellen, funktioniert das? – OblongMedulla

+0

Namesfiles sind: this.is.the.file.number.1.720p.ext. Ich habe die Suche mit anderen Dateien versucht, aber nichts funktioniert, außer "Name enthält" pdf'', die mir alle meine PDF-Dateien geben .... –

1

fand ich eine Lösung, aber es ist nicht effizient, bitte man ein effizienter liefern gerne:

function deleteFiles(){  
    var folder = DriveApp.getFoldersByName('MyFolder').next(); 
    var files = folder.getFiles(); 
    while (files.hasNext()) { 
    var file = files.next(); 
    var filename = file.getName(); 
    if (filename.indexOf("720p")>-1){ 
    Logger.log(filename); 
    file.setTrashed(true); 
    }  
    } 
} 
Verwandte Themen