对于“原因”管理,我需要重命名Google驱动器中的一堆文件。当我说“一堆”时,我在说数千。我正在编写一种方法来执行此操作。
到目前为止,我已经设法编写了一些代码,使我可以在文件夹结构的一级重命名文件。可以说文件夹结构为:
\Folder 1
\Folder 2
\Folder 2.2
\Folder 3
此代码重命名了文件夹2和文件夹2.2中的所有文件(给定文件夹1的ID),但没有重命名文件夹1或文件夹3中的文件。我也不知道文件夹结构中有多少级。 / p>
我认为应该有一种方法可以让此代码的文件重命名为独立功能,并为顶层文件夹下的每个文件夹调用它。我只是不知道该怎么做。
我所拥有的如下:
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);
}
}
}
谢谢。
答案 0 :(得分:1)
pre + " " + curName + " Version " + ver
。pre
和ver
的值是恒定的。如果我的理解是正确的,那么该修改如何?我认为您的情况有几个答案。因此,请将此视为其中之一。
function renameFile() {
// Added
var renameFiles = function(id) {
var files = DriveApp.getFolderById(id).getFiles();
while (files.hasNext()) {
var file = files.next();
var curID = file.getId();
var curName = file.getName();
var newName = pre + " " + curName + " Version " + ver;
file.setName(newName);
}
var ids = [];
var folders = DriveApp.getFolderById(id).getFolders();
while (folders.hasNext()) {
ids.push(folders.next().getId());
}
if (ids.length > 0) ids.forEach(function(id) {renameFiles(id)});
}
var sourceSheet = SpreadsheetApp.getActiveSpreadsheet().getSheetByName("Main");
var filePaths = sourceSheet.getRange(4, 1).getValue(); // Modified
var pre = sourceSheet.getRange("C4").getValue();
var ver = 1;
renameFiles(filePaths); // Added
}
filePaths
是文件夹ID。即,文件夹ID放在单元格“ A4”中。如果我误解了你的情况,请告诉我。我想修改它。