Página 1 de 1

Recursion... Me trae de cabeza

Publicado: 07 Dic 2009, 14:19
por Aklxao
Bueno, mi problemas es que intento coger todos los mp3 que hay en una carpeta, incluyendo subdirectorios. Me acuerdo que hice un post referido a esto de la busqueda en carpetas desconocidas, lo mire, e intente adaptar los códigos que habían alli a mis necesidades. El problemas es que no consigo que busque en todos los directorios, tan solo busca en la primera carpeta que encuentra y se sale....

Aqui esta el script a ver si ustedes ven el error:

Código: Seleccionar todo

Global $acabar = 0,$d = 1, $c = 1
#include <File.au3>
Global $ru = FileSelectFolder("a","")
CojerMp3($ru)


Func CojerMp3($DIr)

	$DIr = $DIr & "\"
While $acabar = 0
$file = _FileListToArray($DIr,"*.mp3")
		If not @error Then
			For $a = 1 to $file[0]
			IniWrite(@ScriptDir & "\a.ini","MP3",$d,$DIr & $file[$a])
			$d = $d +1
		Next
		$acabar = 1
		Else
			ExitLoop
		EndIf
	WEnd
	$acabar = 0
	While $acabar = 0
			Global $files = _FileListToArray($DIr,"*.*",2)
			If not @error Then
				For $a = 1 to $files[0]
					MsgBox(0,"",$files[$a])
				CojerMp3($ru & "\" & $files[$a])

			Else
				Global $filemp3 = _FileListToArray($DIr,"*.mp3")
				If not @error Then
			For $a = 1 to $file[0]
			IniWrite(@ScriptDir & "\a.ini","MP3",$d,$DIr & $file[$a])
			$d = $d +1
		Next
		Else
				ExitLoop
		EndIf

			Next
			Exit
		EndIf
	WEnd

EndFunc
llevo ya un par de días dándole vueltas al código y siempre consigo el mismo resultado... así que... espero vuestra ayuda :smt003

Saludos!! :smt023

Re: Recursion... Me trae de cabeza

Publicado: 07 Dic 2009, 15:47
por Chefito
Te dejo un post donde hice dos funciones utilizando recursión para la búsqueda de ficheros. Acepta búsquedas como *.mp3. Si lo quieres filtrar a .mp3 solamente tienes que cambiar de la función de búsqueda la variable $fichero_a_buscar a "*.mp3", o pasarle lo que te dije anteriormente.
Cualquiera de las dos funciones vale.
Hay más gente que participó con sus códigos. Miralos y el que más te guste y no falle (creo que alguno fallaba en la búsqueda.....los mios creo recordar que no :smt002 ) lo eliges y lo adaptas a tu programa.
Mira el tema entero. También puedes mirar el estudio que hice en el último post para ver que código era el más rápido.

http://www.emesn.com/autoitforum/viewto ... sion#p2550

Saludos.

Re: Recursion... Me trae de cabeza

Publicado: 07 Dic 2009, 15:50
por BasicOs
Creo que debes usar la función FileFindFirstFile y otras similares en vez del Array.

Aquí va un ejemplo,

http://www.emesn.com/autoitforum/viewto ... File#p2511

Y una busqueda de bastantes casos:
http://www.emesn.com/autoitforum/search ... dFirstFile

Salu2:)

Re: Recursion... Me trae de cabeza

Publicado: 07 Dic 2009, 17:56
por Aklxao
Gracias Chefito, por fin ha encontrado todas las canciones, yo probe en el post que hice sobre el buscador, con el codigo que tenia 2 while y... al no funcionarme pues intente hacerlo yo por mi cuenta y... el resultado no fue desastroso pero si un poco decepcionanate. En fin, gracias de nuevo por la ayuda, espero que la próxima vez que me salga algo con recursión pueda hacerlo solo :smt003

Saludos!!! :smt023