Copy link to clipboard
Copied
Hi,
I want to add a small function to a script that logs the name of every subfolder in the root folder/parent folder of the one I am working from.
Here is what I have so far:
var docRef = app.activeDocument;
var sourceFolder = Folder (docRef.path);
var sourceName = sourceFolder.name;
var rootFolder= Folder (sourceFolder.path);
var rootName = rootFolder.name;
function sLog (){
var folderName = String(rootFolder.name);
var sub = folderName.includeSubFolders;
alert (sub);
}
sLog();
I want the alert to be able to list every folder.
Any ideas?
...#target photoshop;
var folders =[];
var topLevel = Folder.selectDialog("Please select top level folder");
folders = FindAllFolders(topLevel, folders);
folders.unshift(topLevel);
var List = [];
for(var a in folders){List.push(decodeURI(folders.name));}
alert(List.join("\n"));
function FindAllFolders( srcFolderStr, destArray) {
var fileFolderArray = Folder( srcFolderStr ).getFiles();
for ( var i = 0; i < fileFolderArray.length; i++ ) {
var fileFoldObj = fileFolderArray;
if ( fileFo
Copy link to clipboard
Copied
Something like this.
#target photoshop;
var folders =[];
var topLevel = Folder.selectDialog("Please select top level folder");
folders = FindAllFolders(topLevel, folders);
folders.unshift(topLevel);
alert(folders.join("\n"));
function FindAllFolders( srcFolderStr, destArray) {
var fileFolderArray = Folder( srcFolderStr ).getFiles();
for ( var i = 0; i < fileFolderArray.length; i++ ) {
var fileFoldObj = fileFolderArray;
if ( fileFoldObj instanceof File ) {
} else {
destArray.push( Folder(fileFoldObj) );
FindAllFolders( fileFoldObj.toString(), destArray );
}
}
return destArray;
};
Copy link to clipboard
Copied
Cheers Merlin, this result includes the full path.
Any ideas on how to remove the path "~/Documents/Base/FileName" so it just shows "FileName" for the list?
Copy link to clipboard
Copied
#target photoshop;
var folders =[];
var topLevel = Folder.selectDialog("Please select top level folder");
folders = FindAllFolders(topLevel, folders);
folders.unshift(topLevel);
var List = [];
for(var a in folders){List.push(decodeURI(folders.name));}
alert(List.join("\n"));
function FindAllFolders( srcFolderStr, destArray) {
var fileFolderArray = Folder( srcFolderStr ).getFiles();
for ( var i = 0; i < fileFolderArray.length; i++ ) {
var fileFoldObj = fileFolderArray;
if ( fileFoldObj instanceof File ) {
} else {
destArray.push( Folder(fileFoldObj) );
FindAllFolders( fileFoldObj.toString(), destArray );
}
}
return destArray;
};
Copy link to clipboard
Copied
Super!
Copy link to clipboard
Copied
for me there was an error in this code that i corrected by adding an index [i] to the following line:
var fileFoldObj = fileFolderArray;
changing it to:
var fileFoldObj = fileFolderArray[i];
solved it for me!
Copy link to clipboard
Copied
@tales23460045id4y – Yes, the change in forum software broke the old code formatting. Good job in fixing it!