Kansiopuun läpikäyminen

Voit pyytää apua ohjelmointiongelmiin täältä.
Post Reply
User avatar
valscion
Moderator
Moderator
Posts: 1593
Joined: Thu Dec 06, 2007 8:46 pm
Location: Espoo
Contact:

Kansiopuun läpikäyminen

Post by valscion » Sun Jan 09, 2011 12:06 am

Oliskos jollain vielä tallella sitä systeemiä, jolla pystyis kansioita käymään rekursiivisesti läpi ja tallentaa kerralla kaikkien tiedostojen tiedostopolut tyyppikokoelmaan? Eli vaikkapa kansiosta C:/Program Files/ käytäisiin kaikki alikansiot läpi ja lisättäisiin kaikki tiedostot muistiin.
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com

User avatar
KilledWhale
Tech Developer
Tech Developer
Posts: 543
Joined: Sun Aug 26, 2007 2:43 pm
Location: Liminka

Re: Kansiopuun läpikäyminen

Post by KilledWhale » Sun Jan 09, 2011 1:07 am

Code: Select all

// Kansiopuun läpikäynti
// 08.01.2011
// By KilledWhale

SCREEN 1024, 768
 
Const FILE = 1
Const DIRECTORY = 2
Const NOT_DONE = 3
 
Type Files
	Field name_ As String
	Field type_ As Byte
EndType
 
Function FindFiles(path$)
	// Suhteellinen polku absoluuttiseksi
	If IsDirectory(CurrentDir() + path$) Then
		path$ = CurrentDir() + path$
	EndIf
 
	// Tarkistetaan validius
	If Not IsDirectory(path$) Then
		MakeError path$ + " is Not a directory!"
	EndIf
 
	oldPath$ = CurrentDir()
 
	F.Files = New(Files)
	F\name_ = path$
	F\type_ = NOT_DONE
 
	For F.Files = Each Files
		If F\type_ = NOT_DONE
			ChDir f\name_
			StartSearch
				Repeat
					file$ = FindFile()
					If file$ = "" Then Exit
					If file$ <> "." And file$ <> ".." Then
						FF.Files = New(Files)
						FF\name_ = CurrentDir() + file$
						If IsDirectory(FF\name_) Then
							FF\type_ = NOT_DONE
						Else
							FF\type_ = FILE
						EndIf
					EndIf
				Forever
			EndSearch
			F\type_ = DIRECTORY
		EndIf
	Next F
 
	ChDir oldPath$
EndFunction
 
FindFiles("C:\Program Files\CoolBasic")
 
For F.files = Each files
	Print String("DIRECTORY: ", f\type_ = DIRECTORY) + String("FILE: ", f\Type_ = FILE) + f\name_
Next F
 
WaitKey
CoolBasic henkilökuntaa
Kehittäjä

cbFUN Kello
cbSDL
Whale.dy.fi

<@cce> miltäs tuntuu olla suomen paras

User avatar
valscion
Moderator
Moderator
Posts: 1593
Joined: Thu Dec 06, 2007 8:46 pm
Location: Espoo
Contact:

Re: Kansiopuun läpikäyminen

Post by valscion » Sun Jan 09, 2011 1:33 am

Kiitoksia paljon :)
cbEnchanted, uudelleenkirjoitettu runtime. Uusin versio: 0.4.1 — Nyt myös sorsat GitHubissa!
NetMatch - se kunnon nettimättö-deathmatch! Avoimella lähdekoodilla varustettu
vesalaakso.com

Post Reply