我试图重命名指定文件夹中的每个文件和所有子文件夹中的所有文件,但我无法弄清楚如何这样做。到目前为止我有这个脚本重命名文件夹中的每个文件给定其ID,但我需要做所有子文件夹。
function renameFilesInFolder(folderID) {
var folder = DriveApp.getFolderById(folderID)
var files = folder.getFiles(),
fileNames = []
while(files.hasNext()){
var file = files.next()
var oldFileName = file.getName()
var checkIfMatch = oldFileName.substring(oldFileName.length - 3);
var newFileName = ""
if (checkIfMatch=="OBS"){
newFileName = oldFileName
} else {
newFileName =oldFileName+"_OBS"
}
file.setName(newFileName)
Logger.log(newFileName)
}
}
这将通过将它们写入电子表格的文件夹进行递归。
var level=0;
function getFnF(folder) {
var folder= folder || DriveApp.getRootFolder();
var ss=SpreadsheetApp.getActive();
var sh=ss.getSheetByName('FilesAndFolders')
var files=folder.getFiles();
while(files.hasNext()) {
var file=files.next();
var firg=sh.getRange(sh.getLastRow() + 1,level + 1);
firg.setValue(Utilities.formatString('File: %s', file.getName()));
}
var subfolders=folder.getFolders()
while(subfolders.hasNext()) {
var subfolder=subfolders.next();
var forg=sh.getRange(sh.getLastRow() + 1,level + 1);
forg.setValue(Utilities.formatString('Fldr: %s', subfolder.getName()));
level++;
getFNF(subfolder);
}
level--;
}