Página 1 de 1
Ayuda para copiar archivos en C Urgente!!!!!! [SOLUCIONADO]
Publicado: 06 Ago 2011, 21:49
por ElCiberNauta42
Hola gente, como pueden notar soy nuevo en el foro, y tengo una duda, estoy empezando en el desarrollo en C, y aún estoy asimilando códigos y demás, pero me eh dado cuenta que no ahí un código o una función especifica para copiar archivos de una ubicación a otra, y era justo lo que necesitaba, se que es necesario abrir un bucle que lea el archivo y lo baya copiando byte por byte a medida que lo va leyendo, pero a la hora de utilizar este código me topo con esta linea que evita que se copie el archivo en su totalidad:
eh intentado con cambiar el "128" que es la cantidad de byte que lee, pero si aumento el buffer a mas de 255 la PSP se crashea al intentar realizar la acción, así que les pido a todos lo coders que me ayuden urgentemente.
Aquí les dejo el código completo que utilice:
Código: Seleccionar todo
int bytesread;
char buffer[128*1024];//Buffer de datos para 131072 bytes
char *READPATH="ms0:/testcopy.txt";
char *WRITEPATH="ms0:/testcopied.txt";
SceUID fd = sceIoOpen(READPATH, PSP_O_RDONLY, 0777);
bytesread = sceIoRead(fd,buffer,sizeof(buffer));
sceIoClose(fd);
fd = sceIoOpen(WRITEPATH, PSP_O_WRONLY|PSP_O_CREAT, 0777);
sceIoWrite(fd,buffer,bytesread);
sceIoClose(fd);
Re: Ayuda para copiar archivos en C Urgente!!!!!!
Publicado: 06 Ago 2011, 22:59
por Yn$an€
Como bien dices, es necesario crear un bucle. Se trataría de que mientras queden datos que leer del archivo de origen, estos se copiasen al buffer para luego escribirlos en el archivo de destino.
Código: Seleccionar todo
int bytesread;
char buffer[128*1024];
char *READPATH="ms0:/testcopy.txt";
char *WRITEPATH="ms0:/testcopied.txt";
SceUID fs = sceIoOpen(READPATH, PSP_O_RDONLY, 0777);
SceUID fd = sceIoOpen(WRITEPATH, PSP_O_WRONLY|PSP_O_CREAT, 0777);
while (bytesread = sceIoRead(fs,buffer,sizeof(buffer)) > 0)
sceIoWrite(fd,buffer,bytesread);
sceIoClose(fs);
sceIoClose(fd);
Espero que te sirva.
Y recuerda que la PSP no es un buen lugar para aprender a programar, sin acritud.
Re: Ayuda para copiar archivos en C Urgente!!!!!!
Publicado: 06 Ago 2011, 23:40
por ElCiberNauta42
Hola, gracias por responder, pero el codigo que me distes al queres compilar me tira un Waring:

Ademas cuando utilizo la funcion no copia mas de 4 bytes, si me puedes ayudar...
Ademas creo que olvide mencionar que necesito copiar un archivo de mas de 1mb...
Re: Ayuda para copiar archivos en C Urgente!!!!!!
Publicado: 07 Ago 2011, 13:45
por Yn$an€
Ok. Ya veo. Te dice que se necesitan unos paréntesis alrededor de la variable que se emplea en la comparación. Ponlo así mejor:
Código: Seleccionar todo
int bytesread;
char buffer[128*1024];
char *READPATH="ms0:/testcopy.txt";
char *WRITEPATH="ms0:/testcopied.txt";
SceUID fs = sceIoOpen(READPATH, PSP_O_RDONLY, 0777);
SceUID fd = sceIoOpen(WRITEPATH, PSP_O_WRONLY|PSP_O_CREAT, 0777);
bytesread = sceIoRead(fs,buffer,sizeof(buffer));
while (bytesread > 0){
sceIoWrite(fd,buffer,bytesread);
bytesread = sceIoRead(fs,buffer,sizeof(buffer));
}
sceIoClose(fs);
sceIoClose(fd);
Así debería de funcionar. Y copiar todo.
-- Doble Post --
Si no, fíjate en los valores que retorna con un printf (su equivalente en PSP, vamos).
Re: Ayuda para copiar archivos en C Urgente!!!!!!
Publicado: 07 Ago 2011, 20:03
por ~Rdavid~
Prueba haciendo algo así:
Código: Seleccionar todo
#include <stdio.h>
FILE *fichOrg, *fichDest;
int bytesread = 0;
char buffer[128*1024];
char *orgpath = "ms0:/testcopy.txt";
char *destpath= "ms0:/testcopied.txt";
fichOrg = fopen(orgpath, "rt");
fichDest = fopen(destpath, "wt");
while (! feof(fichOrg) )
{
bytesread = fread( buffer, 1, sizeof(buffer), fichOrg);
fwrite(buffer, 1, bytesread, fichDest);
}
fclose(fichOrg);
fclose(fichDest);
if(bytesread>0)
pspDebugScreenPrintf("Copiado con exito\n");
Probado con un archivo de 1.7mb desde una psp obviamente

Re: Ayuda para copiar archivos en C Urgente!!!!!!
Publicado: 07 Ago 2011, 20:07
por ElCiberNauta42
Re: Ayuda para copiar archivos en C Urgente!!!!!! [SOLUCIONA
Publicado: 07 Ago 2011, 20:18
por ~Rdavid~
Re: Ayuda para copiar archivos en C Urgente!!!!!! [SOLUCIONA
Publicado: 07 Ago 2011, 22:01
por Yn$an€
Oye, que vas a hacer que me ponga colorado! Gracias a tí, y bienvenido.