Reputation: 377
I'v been trying to: Using Google Apps script, find all files that do not belong to me and is not a google type.
This is what I have:
// 1° try:
var queryStr = "sharedWithMe = true and not mimeType contains 'google'";
var filesIterator = DriveApp.searchFiles(queryStr);
while(filesIterator.hasNext()){
debugger; // it never gets here
}
// 2° try:
var queryStr = "not 'me' in owners and not mimeType contains 'google'";
var filesIterator = DriveApp.searchFiles(queryStr);
while(filesIterator.hasNext()){
debugger; // it never gets here
}
On a Google Drive UI search it's possible to find lots of files on that condition, so there must be something with the query I'm trying.
Thanks
Upvotes: 0
Views: 585
Reputation: 64100
I think this is what you want:
function listNonGoogleMimetypes(id) {
var id=id||'default id';
var files=DriveApp.getFolderById(id).getFiles();
var list=[];
while(files.hasNext()) {
var file=files.next();
var type=file.getMimeType();
if(file.getMimeType().indexOf('GOOGLE')==-1) {
list.push(file.getName());
}
}
Logger.log(JSON.stringify(list));
}
This will do it for the entire drive:
var list=[];
function listNonGoogleMimetypesInDrive() {
getFnF();
Logger.log(JSON.stringify(list));
}
function getFnF(folder) {
var folder= folder || DriveApp.getRootFolder();
var files=folder.getFiles();
while(files.hasNext()) {
var file=files.next();
var type=file.getMimeType();
var name=file.getName();
if(!type.match(/google/i)) {
list.push(file.getName());
}
}
var subfolders=folder.getFolders()
while(subfolders.hasNext()) {
var subfolder=subfolders.next();
getFnF(subfolder);
}
}
This may take a while to go through your entire drive. It took me about 2 minutes but I don't have that much because I just do a lot of programming on my account.
This version also includes owner email
function getFnF(folder) {
var folder= folder || DriveApp.getRootFolder();
var files=folder.getFiles();
while(files.hasNext()) {
var file=files.next();
var type=file.getMimeType();
var name=file.getName();
var owner=file.getOwner().getEmail();
if(!type.match(/google/i) && owner!='your email address') {
list.push(file.getName());
}
}
var subfolders=folder.getFolders()
while(subfolders.hasNext()) {
var subfolder=subfolders.next();
getFnF(subfolder);
}
}
Upvotes: 2