Error con el comando rename

163 views
Skip to first unread message

jmr...@gmail.com

unread,
Sep 4, 2025, 4:34:26 AMSep 4
to Comunidad de Visual Foxpro en Español
Buenos dias,

Tengo un problema que me esta volviendo majara.


Tengo un procedimiento para renombrar ficheros que carga en una tabla los nombres de los ficheros de un directorio, en otro campo de la tabla le pongo el nombre que tiene que tener el fichero.

cAntes .- Nombre actual
cDespues.- Nombre despues

En el siguiente codigo

If File(cAntes)
If linea # 'BANK'
Rename (cAntes) To (cDespues)
Endif
Endif

Lo ejecuta, pero en algun fichero me da el error 'Fichero no existe'. Lo cual es absurdo porque antes he comprobado que existe.

Que se me esta escapando?

Gerardo Cagnola

unread,
Sep 4, 2025, 6:54:14 AMSep 4
to publice...@googlegroups.com
usá set step on para verificar

--
Blog de la Comunidad Visual FoxPro en Español http://comunidadvfp.blogspot.com
---
Has recibido este mensaje porque estás suscrito al grupo "Comunidad de Visual Foxpro en Español" de Grupos de Google.
Para cancelar la suscripción a este grupo y dejar de recibir sus mensajes, envía un correo electrónico a publicesvfoxp...@googlegroups.com.
Para ver este debate, visita https://groups.google.com/d/msgid/publicesvfoxpro/a27e1aae-c8d2-4b19-a36b-2d43a0813271n%40googlegroups.com.

Zarlu

unread,
Sep 4, 2025, 8:58:34 AMSep 4
to Comunidad de Visual Foxpro en Español
Buenos días jmromeo!

Prefiero no usar File().

Prueba esto y comenta:
lcOld=archivoactualconpath
lcNew=archivorenombradoconpath
oFSO=CreateObject('Scripting.FileSystemObject')&&verificar si existe archivo
If oFSO.FileExists(lcNew)
Messagebox("Existe archivo con el mismo nombre.",0+48,"Aviso")
RETURN
ENDIF
RELEASE oFSO
DECLARE SHORT MoveFile IN Win32API STRING, STRING
=Movefile(lcOld,lcNew)
Release MoveFile


Suerte
zarlu
Chetumal, Quintana Roo, México
Message has been deleted
Message has been deleted
Message has been deleted
Message has been deleted

jmr...@gmail.com

unread,
Sep 5, 2025, 7:02:34 AMSep 5
to Comunidad de Visual Foxpro en Español
Funciona estupendamente, muchas gracias!!
Message has been deleted

Fabio Ramirez

unread,
Sep 5, 2025, 7:01:21 PMSep 5
to Comunidad de Visual Foxpro en Español
Intenta con esto :

If File(cAntes)
If linea # 'BANK'
Rename (cAntes) To (cDespues)
                        store inkey(0.1) to demora
Endif
Endif

Message has been deleted

Алексей Запольский (alex;)

unread,
Sep 18, 2025, 1:29:09 AM (12 days ago) Sep 18
to Comunidad de Visual Foxpro en Español
Hi.
FILE() does not use the path to the file if it is inside the EXE (a kind of exception), but returns .T. for any path if the name matches. FILE() function does not search for files in the startup directory - it searches for them in the current directory, and this is generally not the same thing. And then by using SET PATH.
Read Help.

You can use ADIR().

WBR, alex;
четверг, 4 сентября 2025 г. в 11:34:26 UTC+3, jmr...@gmail.com:
Reply all
Reply to author
Forward
0 new messages