Rename folders with number of FLAC, MP3, M4A and WAV files

Hello @khalidhosain, I don't know if you already found a way to solve this problem, but I asked for external help and here is a script that allows you to do what you wanted, I hope you enjoy it!

This works as a toolbar button. See Raw Commands in How to use buttons and scripts from this forum for how to set it up.

@disablenosel:dirs
@nodeselect :star_struck:
Rename TO "*"
@script Jscript

var fso = new ActiveXObject('Scripting.FileSystemObject');

function isEpubOrPdfFile(file) {
    var extension = fso.GetExtensionName(file);
    return extension === 'flac' || extension === 'mp3'|| extension === 'm4a'|| extension === 'wav';
}

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()) {
        var file = files.item();
        if (isEpubOrPdfFile(file)) {
            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 + ')';
}
2 Likes

Thank you so much brother

2 Likes