Walk a directory/Non-recursively: Difference between revisions

Content added Content deleted
(→‎{{header|TXR}}: Solution with direct directory reading.)
No edit summary
Line 1,091: Line 1,091:


exit @.0+rc /*stick a fork in it, we're done.*/</lang>
exit @.0+rc /*stick a fork in it, we're done.*/</lang>


=={{header|RING}}==
<lang ring>

###---------------------------------------
### Directory Tree Walk
### Look for FileType for Music and Video

fileType = [".avi", ".mp4", ".mpg", ".mkv", ".mp3", ".wmv" ]

dirList = []
musicList = []

###---------------------------------------
### Main
###-----------------------------------
### Start at this directory
searchVideoMusic("C:\Users\Umberto\")

see nl +"Number of Music and Videos files: " +len(musicList) +nl +nl
see musicList
See nl +"Finished" +nl

###=======================================
### Search for Video and Music files

Func searchVideoMusic(startDir)

ChDir(startDir + "Music") ### <<<== add Music subpath C:\Users\Umberto\Music
listDir( CurrentDir() )

ChDir(startDir + "Videos") ### <<<== add Videos subpath C:\Users\Umberto\Videos
listDir( CurrentDir() )

for searchDir in dirList ### Search Directory List for Music and Videos files
listDir(searchDir)
next


###==============================
### Find Files in Directory

Func listDir(dirName)

ChDir(dirName)
Try
###-------------------------------------
### Get SubDirectories

myListSub = Dir( CurrentDir() )
Catch
###-------------------------------------
### Error, Couldn't open the directory

See "ListDir Catch! " + CurrentDir() +" --- "+ cCatchError +nl
return
Done

for x in myListSub
if x[2]
thisDir = x[1]

if thisDir[1] = "."
### Do Nothing. Ignore dot.name

else
see nl +"Dir: " + CurrentDir() +"\"+ thisDir + nl

###----------------------------------------
### Directory Walk add to directory list

Add( dirList, (CurrentDir() +"\"+ thisDir))
ok
else
thisFile = x[1]

###-------------------------------
### Add Music or Video file type

for thisType in fileType
if ( substr(thisFile, thisType) ) ### <<<== Type of File from List
see " File: " + thisFile + nl
Add(musicList, (CurrentDir() +"\"+ thisFile))
ok
next
ok
next
return

###===============================================

</lang>

OUTPUT:
<pre>

Dir: C:\Users\Umberto\Music\Free YouTube Downloader
File: stock.mp3
File: big_buck_bunny.mp4
File: BowieNikolaTesla'ThePrestige'.mpg
File: BowieTesla'The Prestige'.wmv
File: Candyman.mp4

Dir: C:\Users\Umberto\Videos\Captures
File: drop.avi

Dir: C:\Users\Umberto\Videos\Free YouTube Downloader
File: GaryUSBondsQuarterToThree.avi

Dir: C:\Users\Umberto\Videos\HitomiTanaka[MIDE-219]
File: Joe.Versus.The.Volcano[1990].avi
File: SampleTheMythSanWa2005.mkv
File: stock.mp3

Dir: C:\Users\Umberto\Videos\The Prestige (2006)
File: BowieNikola'The Prestige'.mp4
File: BowieTeslaThe PrestigeConverted.mpg
File: 027_3xplanet_MDYD-895.avi
File: 3.mpg
File: HitomiTanaka[MIDE-219].mp4
File: MDYD-868.wmv
File: MIDE-253.mp4
File: MIDE_280.mp4
File: PPPD-432.avi
File: The.Prestige.2006.mkv

Number of Music and Videos files: 20

C:\Users\Umberto\Music\stock.mp3
C:\Users\Umberto\Videos\big_buck_bunny.mp4
C:\Users\Umberto\Videos\BowieNikolaTesla'ThePrestige'.mpg
C:\Users\Umberto\Videos\BowieTesla'The Prestige'.wmv
C:\Users\Umberto\Videos\Candyman.mp4
C:\Users\Umberto\Videos\drop.avi
C:\Users\Umberto\Videos\GaryUSBondsQuarterToThree.avi
C:\Users\Umberto\Videos\Joe.Versus.The.Volcano[1990].avi
C:\Users\Umberto\Videos\SampleTheMythSanWa2005.mkv
C:\Users\Umberto\Videos\stock.mp3
C:\Users\Umberto\Videos\Free YouTube Downloader\BowieNikola'The Prestige'.mp4
C:\Users\Umberto\Videos\Free YouTube Downloader\BowieTeslaThe PrestigeConverted.mpg
C:\Users\Umberto\Videos\HitomiTanaka[MIDE-219]\027_3xplanet_MDYD-895.avi
C:\Users\Umberto\Videos\HitomiTanaka[MIDE-219]\3.mpg
C:\Users\Umberto\Videos\HitomiTanaka[MIDE-219]\HitomiTanaka[MIDE-219].mp4
C:\Users\Umberto\Videos\HitomiTanaka[MIDE-219]\MDYD-868.wmv
C:\Users\Umberto\Videos\HitomiTanaka[MIDE-219]\MIDE-253.mp4
C:\Users\Umberto\Videos\HitomiTanaka[MIDE-219]\MIDE_280.mp4
C:\Users\Umberto\Videos\HitomiTanaka[MIDE-219]\PPPD-432.avi
C:\Users\Umberto\Videos\The Prestige (2006)\The.Prestige.2006.mkv

Finished

</pre>



=={{header|Ruby}}==
=={{header|Ruby}}==