Anuncios Google

Alguien me dice como copiar en LuaDev

Estuve viendo el tutorial de cam-maker para hacer un explorador de archivos ya que ese es mi objetivo y me gusto el tuto porque queda bien y el codigo no es largo, quiero agregarle las funciones para manejar los archivos y no solo para verlos(copiar, pegar, renombrar, entre otros), ya comente en el tutorial pero agradecí sin probar primero y cuando iba a preguntar nuevamente ya no me respondieron, ya probé con: files.copy(lugar,"ms0:/") pero solo copia lo que hay adentro de la carpeta que estoy seleccionando actualmente(si es una carpeta, con archivos no hace nada), tambien probé con files.copy(workDir[i].name,"ms0:/") pero me da error, solo quiero saber que parámetros usar para copiar el archivo seleccionado a la raiz de la memoria(ms0:/), gracias por adelantado


 

 

                           Falconal was here


Anuncios Google

Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.

No lo estás manejando

No lo estás manejando correctamente. En primer lugar, files.copy() necesita dos argumentos: la dirección del archivo a copiar, y la dirección de destino (si especificas un nombre diferente del que tiene el origen, también se renombrará). Además, para copiar una carpeta debes especificar un tercer argumento, con valor true (para habilitar la copia recursiva)

En segundo lugar, la variable i sólo sirve para imprimir la lista, pero no para saber que archivo tienes seleccionado. Para esto, está la variable posicion. Por ejemplo...

--Digamos que se habilita la copia con select
if controls.press("select") then
   if workdir[posicion].directory then   --Si estoy sobre una carpeta...
      files.copy(workdir[posicion].name,"destino",true)   --Copio recursivamente
   else   --Si no...
      files.copy(workdir[posicion].name,"destino")   --Copio el archivo normalmente
   end
end

Te toca agregar el code necesario para especificar el destino (preguntar al user, pedir que seleccione un directorio, no sé :P)

PD @ Comandillos: workdir no es una función, es una tabla (array) ;)

Imagen de Falconal

No funciona

Ya intenté hace tiempo eso, lo que pasa es lo mismo, digamos que pongo así:

function copiar()
if workDir[posicion].directory then  
      files.copy(workDir[posicion].name,"ms0:/",true)
else
	files.copy(workDir[posicion].name,"ms0:/",true)  
  end
end

solo copia lo que hay dentro de las carpetas selecccionadas si son carpetas, con los archivos no hace nada workDir es la tabla con los archivos, lugar es workDir[posicion].name que es lo mismo y debería devolver la ruta completa del archivo por lo tanto no se donde está la falla


 

 

                           Falconal was here

Ya sé cuál es el problema. La

Ya sé cuál es el problema. La ruta de destino debe ser una ruta completa, incluyendo el nombre del destino:

--Mal hecho:
   files.copy("ms0:/CXMB","ms0:/PSP",true)  
      files.copy("ms0:/screenshot.png","ms0:/PSP")
 
--Correcto
   files.copy("ms0:/CXMB","ms0:/PSP/CXMB",true)  
      files.copy("ms0:/screenshot.png","ms0:/PSP/pantallazo.png")
 

Es decir, si copias una carpeta, se pegará su contenido en la dirección que especifiques (si no existe, se creará). Un archivo se copia a la dirección de destino, con el nombre que especificas en el destino (insisto, si es diferente del de origen, se renombra)

Imagen de Falconal

Entonces

Si este es el caso algo así debería funcionar:

function copiar()
files.copy(workDir[posicion].name,"ms0:/" + files.nopath(workDir[posicion].name),true)
end
 

aunque no funciona y ya se porque pero no como corregirlo, como sumo dos textos?, es decir: en el argumento destino coloco "ms0:/" + files.nopath(workDir[posicion].name), eso es para conseguir el nombre puro del archivo seleccionado(e.g. "ms0:/EBOOT.PBP" = EBOOT.PBP), quedando así: workDir[posicion].name para el archivo seleccionado y ms0:/ + files.nopath(workDir[posicion].name) para la raiz mas el archivo seleccionado como dijiste, pero no se sumar los dos textos para conseguir una sola ruta 


 

 

                           Falconal was here

"Sumar" dos o más strings se

"Sumar" dos o más strings se llama "concatenar" en el mundo de la programación. En el caso de Lua, se usan dos puntos entre los strings que quieres concatenar. Tienen que ser strings, o números para que funcione.

"texto: "..var1.."texto2: ".."Más texto xD"

Imagen de Falconal

Muchas Gracias

Muchas Gracias Rober Galarga, alfín funcionó, ahora solo debo poner un menú para seleccionar entre copiar, pegar y otras cosas, ya hay tutos por ahí y en cuestion de tiempo talvez haga mi primer aporte a la comunidad


 

 

                           Falconal was here

Imagen de Comandillos

Pues en teoria...

En teoria deberia de funcionar, lo que no entiendo muy bien es la funcion workDir[i].name...., normalmente las funciones terminan en "()", ¿no?. A lo mejor es eso..., quien sabe


Opciones de visualización de comentarios

Seleccione la forma que prefiera para mostrar los comentarios y haga clic en «Guardar las opciones» para activar los cambios.