[C con Clase] Rename
Programante
programante en gmail.com
Mar Mayo 22 20:02:50 CEST 2007
Steven Davidson escribió:
> Hola Programante,
>
> El pasado 2007-05-22 14:06:55, Programante escribió:
>
> P> remove(oldname)
> P> rename(newname, oldname);
> P> Al menos en Windows, es necesario que no lo renombres a un fichero que
> P> ya existe.
>
> Esto es correcto, pero el mensaje de error que da MS-Windows, en el caso que presentas, no es "permiso denegado" sino "fichero o directorio no existe" (o "no encontrado").
>
Al contrario, el error es que existe: "Error al renombrar archivo: File
exists"
Yo me inclinaría a que queda algún manipulador al fichero. Si newname
está abierto no tiene problemas para renombrar, pero si lo está oldname,
da acceso denegado.
Por otra parte, también es posible que lo tengas abierto con otro
programa que sea el que no permite renombrarlo.
> P> Por otra parte, por los nombres que les das a los archivos, creo que
> P> tienes los
> P> parámetros cambiados (quieres pasar la "nueva" base de datos al nombre
> P> "oficial").
>
> Me temo que esto no es así; Ismael lo tiene correctamente escrito. El prototipo de 'rename()' es:
>
> int rename( const char *original, const char *nuevo );
>
>
Exacto. Basándome a los nombres, supuse que copia los registros sin los
borrados de Basededatos.txt a newname.txt y luego renombra newname.txt a
Basededatos.txt
Más información sobre la lista de distribución Cconclase