Hey guys!
Im trying to get a list of all files (doesn't really matter what extension) that exists in a folder and it's subfolders.
So far I've tried a few solutions without coming up with anything simple and reliable. I did try this;
https://community.adobe.com/t5/photosho ... -p/5162230
But it returns that "sFolders.getFiles(); is not a function.", and since it's friday afternoon I guess my brain is mush.
Anyhow - I just want a simple array containing all files (including their searchway) based on whatever input folder you select.
How would I achieve this?
List all files in folder and subfolders
Re: List all files in folder and subfolders
After Adobe transited their forums from old platform, the parts of codes like for ex. [ i ] were lost.
Re: List all files in folder and subfolders
Relized someone else might be interrested in this. Here's an overly complex solution that I made shortly after posting the question.
I know it's really ugly, but at the time I just wanted something that did the job, and I'm not too concerned about how long time it takes to get all files.
Enjoy!
I know it's really ugly, but at the time I just wanted something that did the job, and I'm not too concerned about how long time it takes to get all files.
Enjoy!
Code: Select all
var ReturnArray = [];
var GlobalFiles = [];
var GlobalFolders = [];
var allFoldersList = getAllFolders(Folder.selectDialog("Select Inputfolder"));
for (i = 0; i < allFoldersList.length; i++) {
//alert("Searching in folder:\n" + allFoldersList[i]);
var FolderContentArray = new Folder(allFoldersList[i]);
var FolderContentArray = FolderContentArray.getFiles(); //Array of File objects
for (y = 0; y < FolderContentArray.length; y++) { //For each array item
GlobalFiles.push(FolderContentArray[y] + "\n");
}
}
alert(GlobalFiles); //Do whatever you want with the output
function getAllFolders(selectedFolder){
var displayerror = 0;
if(selectedFolder == null) {alert("No folder selected.");return;}
var folderList = [];
GlobalFolders.push(selectedFolder);
try{
folderList[0] = selectedFolder.getFiles(function(f) { return f instanceof Folder; });
GlobalFolders.push(folderList[0]);
} catch(error) {
if (displayerror == 1) {
alert(error);
}
}
try{
folderList[1] = [];
for (y = 0; y < folderList[0].length; y++) {
if (y == 0) {
folderList[1] = folderList[1] + folderList[0][y].getFiles(function(f) { return f instanceof Folder; });
} else {
folderList[1] = folderList[1] + "," + folderList[0][y].getFiles(function(f) { return f instanceof Folder; });
}
}
GlobalFolders.push(folderList[1]);
} catch(error) {
if (displayerror == 1) {
alert(error);
}
}
try{
folderList[1] = folderList[1].split(",");
folderList[2] = [];
for (y = 0; y < folderList[1].length; y++) {
var tempfile = new Folder(folderList[1][y]);
if (y == 0) {
folderList[2] = folderList[2] + tempfile.getFiles(function(f) { return f instanceof Folder; });
} else {
folderList[2] = folderList[2] + "," + tempfile.getFiles(function(f) { return f instanceof Folder; });
}
folderList[2] = folderList[2].split(",");
GlobalFolders.push(folderList[2]);
}
} catch(error) {
if (displayerror == 1) {
alert(error);
}
}
try{
folderList[3] = [];
for (y = 0; y < folderList[2].length; y++) {
var tempfile = new Folder(folderList[2][y]);
if (y == 0) {
folderList[3] = folderList[3] + tempfile.getFiles(function(f) { return f instanceof Folder; });
} else {
folderList[3] = folderList[3] + "," + tempfile.getFiles(function(f) { return f instanceof Folder; });
}
folderList[3] = folderList[3].split(",");
GlobalFolders.push(folderList[3]);
}
} catch(error) {
if (displayerror == 1) {
alert(error);
}
}
try{
for (y = 0; y < folderList[3].length; y++) {
var tempfile = new Folder(folderList[3][y]);
if (y == 0) {
folderList[4] = folderList[4] + tempfile.getFiles(function(f) { return f instanceof Folder; });
} else {
folderList[4] = folderList[4] + "," + tempfile.getFiles(function(f) { return f instanceof Folder; });
}
folderList[4] = folderList[4].split(",");
GlobalFolders.push(folderList[4]);
}
} catch(error) {
if (displayerror == 1) {
alert(error);
}
}
try{
for (y = 0; y < folderList[4].length; y++) {
var tempfile = new Folder(folderList[4][y]);
if (y == 0) {
folderList[5] = folderList[5] + tempfile.getFiles(function(f) { return f instanceof Folder; });
} else {
folderList[5] = folderList[5] + "," + tempfile.getFiles(function(f) { return f instanceof Folder; });
}
folderList[5] = folderList[5].split(",");
GlobalFolders.push(folderList[5]);
}
} catch(error) {
if (displayerror == 1) {
alert(error);
}
}
try{
for (y = 0; y < folderList[5].length; y++) {
var tempfile = new Folder(folderList[5][y]);
if (y == 0) {
folderList[6] = folderList[6] + tempfile.getFiles(function(f) { return f instanceof Folder; });
} else {
folderList[6] = folderList[6] + "," + tempfile.getFiles(function(f) { return f instanceof Folder; });
}
folderList[6] = folderList[6].split(",");
GlobalFolders.push(folderList[6]);
}
} catch(error) {
if (displayerror == 1) {
alert(error);
}
}
try{
for (y = 0; y < folderList[6].length; y++) {
var tempfile = new Folder(folderList[6][y]);
if (y == 0) {
folderList[7] = folderList[7] + tempfile.getFiles(function(f) { return f instanceof Folder; });
} else {
folderList[7] = folderList[7] + "," + tempfile.getFiles(function(f) { return f instanceof Folder; });
}
folderList[7] = folderList[7].split(",");
GlobalFolders.push(folderList[7]);
}
} catch(error) {
if (displayerror == 1) {
alert(error);
}
}
try{
for (y = 0; y < folderList[7].length; y++) {
var tempfile = new Folder(folderList[7][y]);
if (y == 0) {
folderList[8] = folderList[8] + tempfile.getFiles(function(f) { return f instanceof Folder; });
} else {
folderList[8] = folderList[8] + "," + tempfile.getFiles(function(f) { return f instanceof Folder; });
}
folderList[8] = folderList[8].split(",");
GlobalFolders.push(folderList[8]);
}
} catch(error) {
if (displayerror == 1) {
alert(error);
}
}
try{
for (y = 0; y < folderList[8].length; y++) {
var tempfile = new Folder(folderList[8][y]);
if (y == 0) {
folderList[9] = folderList[9] + tempfile.getFiles(function(f) { return f instanceof Folder; });
} else {
folderList[9] = folderList[9] + "," + tempfile.getFiles(function(f) { return f instanceof Folder; });
}
folderList[9] = folderList[9].split(",");
GlobalFolders.push(folderList[9]);
}
} catch(error) {
if (displayerror == 1) {
alert(error);
}
}
try{
for (y = 0; y < folderList[9].length; y++) {
var tempfile = new Folder(folderList[9][y]);
if (y == 0) {
folderList[10] = folderList[10] + tempfile.getFiles(function(f) { return f instanceof Folder; });
} else {
folderList[10] = folderList[10] + "," + tempfile.getFiles(function(f) { return f instanceof Folder; });
}
folderList[10] = folderList[10].split(",");
GlobalFolders.push(folderList[10]);
}
} catch(error) {
if (displayerror == 1) {
alert(error);
}
}
try{
for (y = 0; y < folderList[10].length; y++) {
var tempfile = new Folder(folderList[10][y]);
if (y == 0) {
folderList[11] = folderList[11] + tempfile.getFiles(function(f) { return f instanceof Folder; });
} else {
folderList[11] = folderList[11] + "," + tempfile.getFiles(function(f) { return f instanceof Folder; });
}
folderList[11] = folderList[11].split(",");
GlobalFolders.push(folderList[11]);
}
} catch(error) {
if (displayerror == 1) {
alert(error);
}
}
var tempitem = GlobalFolders.toString('');
var temparray = tempitem.split(",");
var ReturnArray = [temparray[0]];
var identical = 0;
for (var i = 0; i < temparray.length; i++) {
for (x = 0; x < ReturnArray.length; x++) {
if (identical == 1) {break;}
var string1 = temparray[i].toString('');
var string2 = ReturnArray[x].toString('');
if (StringMatches(string1, string2)) {
identical = 1;
}
}
if (identical === 0){
var identical = 0;
ReturnArray.push(temparray[i].toString(''));
} else {
var identical = 0;
}
}
return ReturnArray;
}
-
- Posts: 2
- Joined: Mon Jan 16, 2023 1:56 am
Re: List all files in folder and subfolders
Not too bad. It's work.Scriptor wrote: ↑Fri Aug 05, 2022 10:04 am Relized someone else might be interrested in this. Here's an overly complex solution that I made shortly after posting the question.
I know it's really ugly geometry dash world but at the time I just wanted something that did the job, and I'm not too concerned about how long time it takes to get all files.
Enjoy!
Code: Select all
var ReturnArray = []; var GlobalFiles = []; var GlobalFolders = []; var allFoldersList = getAllFolders(Folder.selectDialog("Select Inputfolder")); for (i = 0; i < allFoldersList.length; i++) { //alert("Searching in folder:\n" + allFoldersList[i]); var FolderContentArray = new Folder(allFoldersList[i]); var FolderContentArray = FolderContentArray.getFiles(); //Array of File objects for (y = 0; y < FolderContentArray.length; y++) { //For each array item GlobalFiles.push(FolderContentArray[y] + "\n"); } } alert(GlobalFiles); //Do whatever you want with the output function getAllFolders(selectedFolder){ var displayerror = 0; if(selectedFolder == null) {alert("No folder selected.");return;} var folderList = []; GlobalFolders.push(selectedFolder); try{ folderList[0] = selectedFolder.getFiles(function(f) { return f instanceof Folder; }); GlobalFolders.push(folderList[0]); } catch(error) { if (displayerror == 1) { alert(error); } } try{ folderList[1] = []; for (y = 0; y < folderList[0].length; y++) { if (y == 0) { folderList[1] = folderList[1] + folderList[0][y].getFiles(function(f) { return f instanceof Folder; }); } else { folderList[1] = folderList[1] + "," + folderList[0][y].getFiles(function(f) { return f instanceof Folder; }); } } GlobalFolders.push(folderList[1]); } catch(error) { if (displayerror == 1) { alert(error); } } try{ folderList[1] = folderList[1].split(","); folderList[2] = []; for (y = 0; y < folderList[1].length; y++) { var tempfile = new Folder(folderList[1][y]); if (y == 0) { folderList[2] = folderList[2] + tempfile.getFiles(function(f) { return f instanceof Folder; }); } else { folderList[2] = folderList[2] + "," + tempfile.getFiles(function(f) { return f instanceof Folder; }); } folderList[2] = folderList[2].split(","); GlobalFolders.push(folderList[2]); } } catch(error) { if (displayerror == 1) { alert(error); } } try{ folderList[3] = []; for (y = 0; y < folderList[2].length; y++) { var tempfile = new Folder(folderList[2][y]); if (y == 0) { folderList[3] = folderList[3] + tempfile.getFiles(function(f) { return f instanceof Folder; }); } else { folderList[3] = folderList[3] + "," + tempfile.getFiles(function(f) { return f instanceof Folder; }); } folderList[3] = folderList[3].split(","); GlobalFolders.push(folderList[3]); } } catch(error) { if (displayerror == 1) { alert(error); } } try{ for (y = 0; y < folderList[3].length; y++) { var tempfile = new Folder(folderList[3][y]); if (y == 0) { folderList[4] = folderList[4] + tempfile.getFiles(function(f) { return f instanceof Folder; }); } else { folderList[4] = folderList[4] + "," + tempfile.getFiles(function(f) { return f instanceof Folder; }); } folderList[4] = folderList[4].split(","); GlobalFolders.push(folderList[4]); } } catch(error) { if (displayerror == 1) { alert(error); } } try{ for (y = 0; y < folderList[4].length; y++) { var tempfile = new Folder(folderList[4][y]); if (y == 0) { folderList[5] = folderList[5] + tempfile.getFiles(function(f) { return f instanceof Folder; }); } else { folderList[5] = folderList[5] + "," + tempfile.getFiles(function(f) { return f instanceof Folder; }); } folderList[5] = folderList[5].split(","); GlobalFolders.push(folderList[5]); } } catch(error) { if (displayerror == 1) { alert(error); } } try{ for (y = 0; y < folderList[5].length; y++) { var tempfile = new Folder(folderList[5][y]); if (y == 0) { folderList[6] = folderList[6] + tempfile.getFiles(function(f) { return f instanceof Folder; }); } else { folderList[6] = folderList[6] + "," + tempfile.getFiles(function(f) { return f instanceof Folder; }); } folderList[6] = folderList[6].split(","); GlobalFolders.push(folderList[6]); } } catch(error) { if (displayerror == 1) { alert(error); } } try{ for (y = 0; y < folderList[6].length; y++) { var tempfile = new Folder(folderList[6][y]); if (y == 0) { folderList[7] = folderList[7] + tempfile.getFiles(function(f) { return f instanceof Folder; }); } else { folderList[7] = folderList[7] + "," + tempfile.getFiles(function(f) { return f instanceof Folder; }); } folderList[7] = folderList[7].split(","); GlobalFolders.push(folderList[7]); } } catch(error) { if (displayerror == 1) { alert(error); } } try{ for (y = 0; y < folderList[7].length; y++) { var tempfile = new Folder(folderList[7][y]); if (y == 0) { folderList[8] = folderList[8] + tempfile.getFiles(function(f) { return f instanceof Folder; }); } else { folderList[8] = folderList[8] + "," + tempfile.getFiles(function(f) { return f instanceof Folder; }); } folderList[8] = folderList[8].split(","); GlobalFolders.push(folderList[8]); } } catch(error) { if (displayerror == 1) { alert(error); } } try{ for (y = 0; y < folderList[8].length; y++) { var tempfile = new Folder(folderList[8][y]); if (y == 0) { folderList[9] = folderList[9] + tempfile.getFiles(function(f) { return f instanceof Folder; }); } else { folderList[9] = folderList[9] + "," + tempfile.getFiles(function(f) { return f instanceof Folder; }); } folderList[9] = folderList[9].split(","); GlobalFolders.push(folderList[9]); } } catch(error) { if (displayerror == 1) { alert(error); } } try{ for (y = 0; y < folderList[9].length; y++) { var tempfile = new Folder(folderList[9][y]); if (y == 0) { folderList[10] = folderList[10] + tempfile.getFiles(function(f) { return f instanceof Folder; }); } else { folderList[10] = folderList[10] + "," + tempfile.getFiles(function(f) { return f instanceof Folder; }); } folderList[10] = folderList[10].split(","); GlobalFolders.push(folderList[10]); } } catch(error) { if (displayerror == 1) { alert(error); } } try{ for (y = 0; y < folderList[10].length; y++) { var tempfile = new Folder(folderList[10][y]); if (y == 0) { folderList[11] = folderList[11] + tempfile.getFiles(function(f) { return f instanceof Folder; }); } else { folderList[11] = folderList[11] + "," + tempfile.getFiles(function(f) { return f instanceof Folder; }); } folderList[11] = folderList[11].split(","); GlobalFolders.push(folderList[11]); } } catch(error) { if (displayerror == 1) { alert(error); } } var tempitem = GlobalFolders.toString(''); var temparray = tempitem.split(","); var ReturnArray = [temparray[0]]; var identical = 0; for (var i = 0; i < temparray.length; i++) { for (x = 0; x < ReturnArray.length; x++) { if (identical == 1) {break;} var string1 = temparray[i].toString(''); var string2 = ReturnArray[x].toString(''); if (StringMatches(string1, string2)) { identical = 1; } } if (identical === 0){ var identical = 0; ReturnArray.push(temparray[i].toString('')); } else { var identical = 0; } } return ReturnArray; }
Re: List all files in folder and subfolders
This works better though:
Code: Select all
function main() {
var folder = Folder.selectDialog("Select a folder to list files from");
var RW_destination = folder;
if (!folder) return;
var includePaths = confirm("Do you want to include file paths in the results?");
var fileList = [];
getFileList(folder);
if (fileList.length > 0) {
var fileListString = fileList.join("\n");
// DIALOG
// ======
var dialog = new Window("dialog");
dialog.text = "Filelister";
dialog.orientation = "column";
dialog.alignChildren = ["center","top"];
dialog.spacing = 10;
dialog.margins = 16;
// GROUP1
// ======
var group1 = dialog.add("group", undefined, {name: "group1"});
group1.orientation = "column";
group1.alignChildren = ["left","center"];
group1.spacing = 10;
group1.margins = 0;
// PANEL1
// ======
var panel1 = group1.add("panel", undefined, undefined, {name: "panel1"});
panel1.text = "Output";
panel1.orientation = "column";
panel1.alignChildren = ["left","top"];
panel1.spacing = 10;
panel1.margins = 10;
var edittext1 = panel1.add('edittext {size: [300,500], properties: {name: "edittext1", readonly: true, multiline: true, scrollable: true}}');
edittext1.text = fileListString;
var button1 = panel1.add("button", undefined, undefined, {name: "button1"});
button1.text = "Choose where to save TXT-File";
button1.preferredSize.width = 300;
button1.addEventListener("click", function(){
RW_destination = Folder.selectDialog("Select Output folder");
var RW_File = new File(RW_destination + "/Output.txt");
RW_File.open('w');
RW_File.writeln(fileListString); //Writes entry
while(!RW_File.eof)
RW_File.close();
//HERE
//dialog.hide();
button1.text = RW_destination;
});
// GROUP2
// ======
var group2 = panel1.add("group", undefined, {name: "group2"});
group2.preferredSize.width = 300;
group2.orientation = "row";
group2.alignChildren = ["center","center"];
group2.spacing = 10;
group2.margins = 0;
var button2 = group2.add("button", undefined, undefined, {name: "button2"});
button2.text = "OK";
var divider1 = group2.add("panel", undefined, undefined, {name: "divider1"});
divider1.alignment = "fill";
var statictext1 = group2.add("statictext", undefined, undefined, {name: "statictext1"});
statictext1.text = "Made by Edvard Gullholmer";
dialog.show();
} else {
alert("No files found in the selected folder.");
}
function getFileList(folder) {
var files = folder.getFiles();
for (var i = 0; i < files.length; i++) {
var file = files[i];
if (file instanceof Folder) {
getFileList(file); // Recursive call for subfolders
} else {
var filePath = includePaths ? file.fsName : file.name;
fileList.push(filePath);
}
}
}
}
main();