C/Visual C - Renombrar ficheros

 
Vista:

Renombrar ficheros

Publicado por saky (4 intervenciones) el 16/05/2003 18:09:35
Saludos!
Estoy programando en C bajo Unix, pero esta aplicación también tienen que ejecutarse en un entorno windows. La tarea consiste en leer unos ficheros y una vez leídos renombrarlos con otra extensión. La cuestión es que bajo Unix renombra bien, pero en Windows la función rename devuelve un error 2 en errno; ¿se debe a las barras del path? Hay alguna otra forma de hacerlo sin el rename y sin volcar los datos de los ficheros al archivo con el nuevo nombre?

Gracias por vuestra ayuda
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:Renombrar ficheros

Publicado por login (15 intervenciones) el 16/05/2003 18:46:44
Estas tratando de renombrar en otro directorio o en el mismo que te encuentras ??
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Renombrar ficheros

Publicado por Fr3dMc (2 intervenciones) el 23/05/2003 19:15:40
Para lo del path prueba con esto: en vez de un back-slash ( \ ) utiliza dos ( \\ )
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Renombrar ficheros

Publicado por login (15 intervenciones) el 16/05/2003 19:02:15
El error 2 corresponde a que no puede encontrar el archivo.
si lo estas llamando de otro directorio primero debes cambiarte a ese directorio.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Renombrar ficheros

Publicado por chuidiang (677 intervenciones) el 16/05/2003 21:24:20
Para evitar el problema de las barras en distinto sistema operativo, debes hacer algo como esto

#ifdef ????WINDOWS
#define PATH c:\\etc\\etc\\etc
#endif

#ifdef ????UNIX
#define PATH /etc/etc/etc
#endif

No se las variables ??WINDOWS ??UNIX, pero cada sistema operativo/compilador define las suyas, de forma que al compilar puedas hacer este tipo de cosas.

Ten también en cuenta que el caracter \ sirve para "interpretar" (como el \n que se pone en los printf) el caracter que va detras. En windows debes poner \\ para obtener una \ normal. Si has puesto una barra sencilla, el nombre de fichero va a ser muy raro.

Por ejemplo, "c:\nombre" se interpreta como el fichero "c:<retorno>ombre", que no existe.

Se bueno.
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar

RE:Renombrar ficheros

Publicado por saky (4 intervenciones) el 19/05/2003 09:56:36
Ante todo gracias por la respuesta chicos.
El path es correcto en cuanto a directorios, quiero decir estoy intentando renombrar un fichero con el path almacenado en la misma variable que uso para el fopen; así que ese no es el problema.
Lo de la doble barra ya lo tenía contemplado por el tema de caracteres especiales, así qeu sólo me cada probar con el #define PATH de chuidiang... a ver si doy con las constantes ????WINDOWS y ????UNIX.
Gracias nuevamente y saludos...
Intentaré ser bueno ;-)
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar