Buenas a todos a ver si alguien sabe resolverme esta duda.
Necesito cambiar la ruta de trabajo, pero files.cdir() no funciona.
Quizá me equivoque pero si yo tengo:
--Directorio ms0:/PSP/GAME/A/script.lua files.cdir("ms0:/PSP/GAME/B") dofile("script.lua") --No me cambia el directorio a la carpeta B para cargar el archivo script.lua
Un saludo
Edito:
Definitivamente no me funciona. Aqui dejo el code para comprobar que no va:
a=timer.new() a:start() b=files.cdir() while true do files.cdir("ms0:/PSP") if a:time()>5000 or b!=files.cdir() then break end end os.message(files.cdir())
Salta un mensaje con el dir del HB y no la carpeta PSP :/
Espero que Deviante pueda arreglarlo pronto ;)
Creo recordar esa función iba
Creo recordar esa función iba desaparecer... igual no hace falta (por lo menos no como lo estás usando).
Bueno ya te digo yo que si me
Bueno ya te digo yo que si me hace falta.
Explico lo que quiero hacer con más detalle:
Quiero hacer un loader para ejecutar scrpits de Lua en Music Downloader, es decir entramos en Music Downloader, ponemos las descargas y como estas se realizan automaticamente desde la función screen.flip() pues se podrían hacer en cualquier HB.
Pero al ejecutar un script es necesario cambiar la carpeta de trabajo.
Y por lo tanto esa función si es necesaria.
Aunque estoy investigando otros métodos solo quería cerciorarme de que esa función estaba ahi de adorno.
Un saludo
Dos años en SCENEBETA
Click aquí para ver la Entrada de Bitácora.
Igual para eso no es
Igual para eso no es necesario cambiar de directorio, lo que habría que hacer es modificar los scripts para que todo lo que carguen tenga la ruta completa (eso se puede hacer vía code de forma muy sencilla, por cierto).
Sí, de hecho ese método y
Sí, de hecho ese método y copiar la carpeta del HB al directorio de trabajo son los que veo mejores.
Pero dime la solución del primer método tan sencilla es cambiar todas las funciones que requieran ruta?
Tales como image.load(), sound.load(), font.load(), ini.write(), ini.load(), io.open()... y una larguísima lista.
No lo veo tan sencillo. Cómo lo harías tu?
Salu2
Dos años en SCENEBETA
Click aquí para ver la Entrada de Bitácora.
No las funciones, sino sólo
No las funciones, sino sólo la ruta que usan. Primeramente sabes que tu HB está en "ms0:/PSP/GAME/XYZ", pues la guardas en una variable (ruta, por ejemplo). Ahora, el HB tiene un dofile por allí, algo como dofile("carpeta/loquesea.lua"). Resulta muy sencillo cambiar eso por dofile(ruta.."/carpeta/loquesea.lua") y listo (lo mismo para las otras funciones que usen rutas). Para la sustitución, string.sub seguro que funciona.
Lo más viable en este caso sería ir creando scripts secundarios conforme se vayan necesitando (reescribir el dofile quizá?), así no afectas a los originales (aunque si le agregas rutas absolutas a un HB debería seguir funcionando, sólo que no lo haría si el user instala o desinstala algo como game categories, o sencillamente cambia el HB de lugar).
Sí, ya te he dicho que eso
Sí, ya te he dicho que eso más o menos sería lo que haría, en realidad solo es necesario añadir ms0:/PSP/GAME/ pero dado que se pueden dar muchas posibilidades, por ejemplo que la aplicación cargada sea un explorador y use sus rutas completas... en fin.
Solo queria comprobar si se podia hacer con files.cdir(), sería un buen aporte hacer operativa esa función, al menos en este caso ahorraría el trabajo un 99%.
EDITO: Y los HBs compilados??? Es imposible... la única manera es modificar todas las funciones o copiar el HB a ejecutar
EDITO2: He conseguido hacerlo funcionar copìando el HB completo... Ha sido fácil? No, no recordaba que files.copy() solo copiaba carpetas y subcarpetas no llegaba más lejos, asi que a hacer la función para copiar... Al menos lo he conseguido. Espero que Deviante si algún día saca otra versión corrija estos errores y no tengamos nosotros que hacer estos apaños :D
Un saludo Rober
Dos años en SCENEBETA
Click aquí para ver la Entrada de Bitácora.
otra cosa no faltara esto
otra cosa no faltara esto "/" , files.cdir("ms0:/PSP/GAME/B/")
Bueno perdón por tardar tanto
Bueno perdón por tardar tanto en responder pero con esto de las fiestas...
He probado esto:
En el os.message() me sale la carpeta donde tengo mi HB no la raíz. Por lo que el problema no es si el directorio existe o no o que falte "/"...
Será problema de Lua porque otra cosa...
A ver si alguien puede ayudarme y si no pues gracias a todos :D
Un saludo y feliz navidad
Dos años en SCENEBETA
Click aquí para ver la Entrada de Bitácora.
Pues si algo debe estar mal
Pues si algo debe estar mal con lua dev o ay algo que devian no nos an dicho.xd
estas seguro que no te cambia
estas seguro que no te cambia el directorio de trabajo?, puede ser que el problema esta en el archivo, para estar seguro , files.cdir("ms0:/PSP/GAME/B") y variable=files.cdir(), si te cambia el directori de trabajo el problema esta en el archivo,. xd
Lua dev lanzo esa actualizacion
que iba a incluir videos y demas, o eso ya ha quedado en el olvido?
No aún no la ha sacado. No sé
No aún no la ha sacado. No sé si lo hará o no.
Por favor no desvirtues el tema Dioni ;)
Un saludo
Que versión
Que versión del intérprete estas usando? Puede que se trate de una version antigua, que no permite cambiar el directorio de trabajo.
Puedes probar una cosa, usar files.nodir() hasta estar en la ms0: y luego files.cdir("B"), haber si funciona...
Saludos!
Uso la última versión. Ese
Uso la última versión.
Ese code que me has dado tampoco funciona...
Salu2 y gracias
Existe el directorio B?
Existe el directorio B? Otra cosa no se me ocurre...
Saludos!
Si claro, existe :) Salu2
Si claro, existe :)
Salu2
Pues entonces ni idea de lo que pasa
Pues entonces ni idea de lo que pasa, prueba con files.exists() y mira si te devuelve true o false, yo decia si existía el directorio B por esto:
--Directorio ms0:/PSP/GAME/A/script.lua
Salu2!
PD: Prueba a poner / al final como te comento Jepte o intenta esto:
files.nofile()
files.cdir("B/")