// Dealing with layers, artLayers, and Layer Sets // if ( app.documents.length == 0 ) { app.open( File( WhoAmI().parent.toString() + "/LayerFun.psd" ) ); } // for recursion depth tracking, make it an object so we can pass it around by reference var depth = { depth:0 }; // all the art layer and layer set names in the document var artLayersANDlayerSetNames = []; GetNames( activeDocument.layers, artLayersANDlayerSetNames, depth ); var fileForWriting = new File( WhoAmI().parent.toString() + "/LayerFun.txt" ); DumpNames( artLayersANDlayerSetNames, fileForWriting ); fileForWriting.execute(); /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// /////////////////////////////////////////////////////////////////////////////// function GetNames( objectToDump, outputArrayOfNames, recursionTracker ) { if ( typeof objectToDump == 'object' && typeof objectToDump.length == 'number' && objectToDump.length > 0 && typeof objectToDump[0].name == 'string' ) { for ( var i = 0; i < objectToDump.length; i++ ) { outputArrayOfNames.push( recursionTracker.depth + ":" + objectToDump[i].typename + ":" + objectToDump[i].name ); if ( objectToDump[i].typename == "LayerSet" ) { recursionTracker.depth++; GetNames( objectToDump[i].layers, outputArrayOfNames, recursionTracker ); recursionTracker.depth--; } } } } function DumpNames( arrayToWrite, fileToWriteTo ) { if ( fileToWriteTo.open( "w" ) ) { for ( var i = 0; i < arrayToWrite.length; i++ ) { var splitNames = arrayToWrite[i].split(":"); // if you have : in your name i am in trouble var outputName = ""; for ( var ii = 0; ii < Number( splitNames[0] ); ii++ ) { outputName += ' '; // space over to show levels } outputName += splitNames[1] + ", " + splitNames[2]; fileToWriteTo.writeln( outputName ); } fileToWriteTo.close(); } else { alert( 'could not open file for writing' ); } } function WhoAmI() { var where; try { var FORCEERROR = FORCERRROR; } catch( err ) { where = File(err.fileName); } return where; }