Para obtener el número total de archivos (archivos + directorio) dentro de un directorio, necesitarás realizar un recorrido recursivo en el directorio y sus sub-directorios. Para ello, puedes utilizar una función recursiva que cuente los archivos y carpetas dentro de cada directorio y, finalmente, sume ambos valores para obtener el número total; tambien es posible controlar la recursividad de una funcion mediante un argumento/parametro
Ejemplo:
var fso = new ActiveXObject('Scripting.FileSystemObject');
function getTotalFilesAndFoldersCount(folder, recursive) {
var fileCount = 0;
var folderCount = 0;
var subFolders = new Enumerator(folder.SubFolders);
var files = new Enumerator(folder.Files);
for (; !subFolders.atEnd(); subFolders.moveNext()) {
folderCount++;
if (recursive) {
var subFolder = subFolders.item();
var counts = getTotalFilesAndFoldersCount(subFolder, true);
fileCount += counts.fileCount;
folderCount += counts.folderCount;
}
}
for (; !files.atEnd(); files.moveNext()) {
fileCount++;
}
return { fileCount: fileCount, folderCount: folderCount };
}
function OnGetNewName(getNewNameData, recursive) {
if (!getNewNameData.item.is_dir) return;
var folder = fso.GetFolder(getNewNameData.item);
var counts = getTotalFilesAndFoldersCount(folder, recursive);
return getNewNameData.newname + ' (' + (counts.fileCount + counts.folderCount) + ')';
}
La función getTotalFilesAndFoldersCount realiza un recorrido recursivo de todas los sub-directorios y archivos dentro del directorio proporcionada, contando el número total de archivos y carpetas. Luego, en la función OnGetNewName, utilizamos esta función para obtener el recuento total y agregarlo al final del nombre de la carpeta.
para evaluar o no evaluar la recrusividad deberias usar algo asi:
// Para realizar una búsqueda recursiva (en subdirectorios):
var newName = OnGetNewName(getNewNameData, true);
// Para realizar una búsqueda solo en el directorio actual (no recursiva):
var newName = OnGetNewName(getNewNameData, false);