----------------------- -- Max-Exporter Demo -- File parser demo - Dani Rosen 2004 -- demonstrates parsing folders for export ----------------------- macroScript MaxExporter category:"DaniTools" internalcategory:"DaniTools" tooltip:"MAX-Exporter" buttontext:"MAX-Exporter" Icon:#("SubObjectIcons",16) ( global findDirs global getMaxFiles global initDir rollout fileParser "Max-Exporter File Parser" ( button gDir "Choose Directory" width:200 align:#center checkbox recurse "Include Subdirectories" checked:true align:#center edittext fFormat "File Format: (3ds, obj, etc.)" text:"3ds" fieldWidth:30 align:#center -- label dirLabel "" button goButton "Go!" label workLabel "" height:40 align:#center on gDir pressed do ( initDir = getSavePath caption:"Directory to parse" if initDir == undefined then ( return false ) else ( gDir.text = ("Directory: " + initDir) ) ) on goButton pressed do ( workLabel.text = "Working!" dirs = #() files = #() if recurse.checked then ( findDirs initDir dirs ) else ( append dirs (initDir + "\\") ) for d in dirs do ( files = #() files = getMaxFiles d for f in files do ( fFilt = filterstring f "." fName = fFilt[1] if fFilt.count > 2 then ( for i in 2 to (fFilt.count-1) do fName = (fName + "." + fFilt[i]) ) loadMAXFile f quiet:true exportFile (fName + "." + fFormat.text) #noPrompt workLabel.text = "Working!\n" + f ) -- end for f ) -- end for d -- close fs workLabel.text = "" messageBox "Complete!" ) -- end on go pressed do ) -- Recursive function for getting subdirectories in directories fn findDirs firstDir dirs = ( firstDir += "*" immediateDirs = getDirectories(firstDir) for d in immediateDirs do ( append dirs d findDirs d dirs ) ) -- gets all of the max files in a directory fn getMaxFiles dir = ( files = #() dir += "*.max" files = getFiles dir return files ) nf = newRolloutFloater "Max-Exporter" 230 180 addRollout fileParser nf )