For 'reasons' management need me to rename a bunch of files in Google drive. When I say 'a bunch' I'm talking thousands. I'm scripting a way to do this.
So far I've managed to write some code that allows me to rename files within one level of a Folder Structure. Lets say the Folder Structure is:
\Folder 1
\Folder 2
\Folder 2.2
\Folder 3
This code renames all the files in Folder 2 and Folder 2.2 (given the ID of Folder 1), but not in Folder 1 or Folder 3. I also don't know how many levels there are in the folder structure.
I think there should be a way I can have the file renaming bit of this code as a standalone function and call it for each folder under to top level folder. I just can't figure out how to do that.
What I have is as follows:
function renameFile() {
var sourceSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Main");
var lastRow = sourceSheet.getLastRow();
var filePaths = sourceSheet.getRange(4, 1, 1, 1).getValues();
var pre = sourceSheet.getRange("C4").getValue();
var folder = DriveApp.getFolderById(filePaths);
var contents = folder.getFiles();
var folders = folder.getFolders();
var ver = 1;
while (folders.hasNext()) {
var subFolder = folders.next();
var subFolderID = subFolder.getId();
var nextSubFolder = DriveApp.getFolderById(subFolderID);
var subFiles = subFolder.getFiles();
var subFolders = subFolder.getFolders();
while (subFiles.hasNext()) {
var file = subFiles.next();
var curID = file.getId();
var curName = file.getName();
var fileToRename = DriveApp.getFileById(curID);
var newName = pre + " " + curName + " Version " + ver;
fileToRename.setName(newName);
}
}
}
Thanks in advance.