Get a List of Files

Ray Horsley ray at linkitonline.com
Tue Aug 27 17:04:01 EDT 2002


on 8/27/02 12:55 PM, Ken Ray at kray at sonsothunder.com wrote:

> I wrote a quick little "directorywalker" stack that does this, and reports
> back whether it is a file (optionally along with its type) or a folder, and
> (optionally) indents the hierarchy. It was for Windows files only (so
> there's no Mac type/creator checking), but here's the script:
> 
> -- Card controls: [X] Show Hierarchy, [X] Show Type, [popup menu
> "Delimiters" - had "Spaces (2)", "Spaces (4)" or "Tabs" as choices
> -- Field 1 holds the result
> 
> global gHierList,gMainFolder,gBaseLevels
> 
> on mouseUp
> put "" into gHierList
> answer folder "Pick a folder you want to walk:"
> if it = "" then exit mouseUp
> set the itemDel to "/"
> put it into gMainFolder
> put the number of items of gMainFolder into gBaseLevels
> directoryWalk gMainFolder,(the hilite of btn "ShowHierarchy"),(the
> selectedText of btn "Delimiters"),(the hilite of btn "ShowType")
> put gHierList into field 1
> end mouseUp
> 
> on directoryWalk whatFolder,showHier,pDel,showType
> set the itemDel to "/"
> if "(2)" is in pDel then put 2 into numSpcs
> else put 4 into numSpcs
> put "                                        " into spcPad
> set the directory to whatFolder
> if showHier then
> put ((the number of items of whatFolder)) - gBaseLevels into numLevels
> if pDel <> "tabs" then
> do "put format(" & quote & "%" & (numLevels*numSpcs) & "s" & quote &
> "," & quote & quote & ")  into tPad"
> else
> do "put format(" & quote & "%" & (numLevels) & "s" & quote & "," &
> quote & quote & ")  into tPad"
> replace " " with numToChar(9) in tPad
> end if
> put last item of whatFolder into tFolderName
> if showType then put numToChar(9) & "folder" after tFolderName
> if numLevels <> 0 then
> put tPad & tFolderName into line (the number of lines of gHierList)+1
> of gHierList
> else
> put tFolderName into line (the number of lines of gHierList)+1 of
> gHierList
> end if
> end if
> put the files into temp
> sort temp
> repeat with x = 1 to the number of lines of temp
> if not(showHier) then
> put whatFolder & "/" & (line x of temp) into line (the number of lines
> of gHierList)+1 of gHierList
> else
> put whatFolder & "/" & (line x of temp) into tPath
> put ((the number of items of tPath)) - gBaseLevels into numLevels
> if pDel <> "tabs" then
> do "put format(" & quote & "%" & (numLevels*numSpcs) & "s" & quote &
> "," & quote & quote & ") into tPad"
> else
> do "put format(" & quote & "%" & (numLevels) & "s" & quote & "," &
> quote & quote & ") into tPad"
> replace " " with numToChar(9) in tPad
> end if
> put line x of temp into tFile
> if showType then put addFileType(tFile) into tFile
> if numLevels <> 0 then
> put tPad & tFile into line (the number of lines of gHierList)+1 of
> gHierList
> else
> put tFile into line (the number of lines of gHierList)+1 of
> gHierList
> end if
> end if
> end repeat
> put the directories into tDirList
> sort tDirList
> repeat with x =  2 to the number of lines of tDirList
> directoryWalk (whatFolder & "/" & (line x of
> tDirList)),showHier,pDel,showType
> end repeat
> end directoryWalk
> 
> function addFileType what
> put offset(".",what) into tChar
> if tChar <> 0 then
> put char tChar to length(what) of what into tExt
> put
> queryRegistry("HKEY_CLASSES_ROOT\"&(queryregistry("HKEY_CLASSES_ROOT\"&tExt&
> "\")) & "\") into tType
> else
> put "" into tType
> put "" into tExt
> end if
> if tType = "" then
> if tExt <> "" then
> delete char 1 of tExt  -- remove "."
> put toUpper(tExt) && "File" into tType
> else
> put "File" into tType
> end if
> end if
> return what & numToChar(9) & tType
> end addFileType
> 
> 
> Hope this helps,
> 
> Ken Ray
> Sons of Thunder Software
> Email: kray at sonsothunder.com
> Web Site: http://www.sonsothunder.com/
> 
> 
> ----- Original Message -----
> From: "Scott Rossi" <scott at tactilemedia.com>
> To: <metacard at lists.runrev.com>
> Sent: Tuesday, August 27, 2002 2:17 PM
> Subject: Get a List of Files
> 
> 
>> How might one get a list of all files from a folder which contains nested
>> folders and files several levels deep?
>> 
>> folder1
>> --> file1
>> --> file2
>> --> file3
>> --> folderA
>> ------> file1
>> ------> file2
>> ------> folderX
>> ----------> file1
>> ----------> file2
>> ------> file 3
>> --> file4
>> 
>> Thanks & Regards,
>> 
>> Scott Rossi
>> Creative Director
>> Tactile Media, Multimedia & Design
>> -----
>> E: scott at tactilemedia.com
>> W: http://www.tactilemedia.com
>> 
>> _______________________________________________
>> metacard mailing list
>> metacard at lists.runrev.com
>> http://lists.runrev.com/mailman/listinfo/metacard
>> 
> 
> _______________________________________________
> metacard mailing list
> metacard at lists.runrev.com
> http://lists.runrev.com/mailman/listinfo/metacard
> 


Thanks Ken!!!   Real handy thing to have.



Ray Horsley
Developer, LinkIt! Software




More information about the metacard mailing list