![]() |
RenameFile ???
Aqui vengo de nuevo con mis novatadas :D , aquí el problema, quiero cambiar el nombre de una base de datos en access pero no me funciona, estos son mis codigos.
Gracias desde ahora :rolleyes: |
Hola,
¿Qué error te encuentras? ¿Qué mensaje de error? |
Tengo que averiguar si el archivo (el nuevo nombre que le quiero poner al viejo archivo) existe, ya que si existe Windows no cambiara el nombre del archivo.
PD: no me tira ningun error, solo me sale el mensaje que puse que me diga si se da el caso que delphi no logra renombrar el archivo |
Hola,
De acuerdo. Lo único que se me ocurre es que antes de tratar de renombrar el archivo, justo antes, sitúes un par de "ShowMessage". Uno que te muestre la ruta del viejo archivo, y otro que te muestre la del nuevo. Asegúrate de que no hay nada raro ahí. Por otro lado, tal vez convenga revisar la ayuda del API de Windows sobre la función "RenameFile": más que nada para saber qué se supone que retorna esta función, tanto en caso de éxito como en caso de error. |
lo que me dices de los showmessage ya lo hice (antes de siquiera preguntar aqui) y todo esta en orden, y lo que me dices de averiguar que deberia de retornar, he buscado desde la ayuda de delphi hasta google (tambien antes de preguntar) y lo que debe de retornar si cambia el nombre es true, y si no lo cambia false. Si te ocurre algo mas sera muy bien agradecido pero si no se te ocurren pues gracias de todos modos ;)
|
Hola,
Vale. Buscando por "RenameFile" al cabo se ve que utiliza (en Windows) la función "MoveFile" del API de Win32. Podrías usar esta función (por cierto, yo no sé qué **** han cambiado en la Web de MSDN que no encuentro la documentación de la función "MoveFile"), digo, en lugar de "RenameFile". Lo digo porque la función "MoveFile" te permitirá recurrir a la función "GetLastError" en caso de que algo marche mal. Es posible que con "RenameFile" también puedas recurrir a "GetLastError", pero, si te fijas en esta función, verás que únicamente existe por compatibilidad con Linux: en Windows se acaba usando "MoveFile". En fin. Yo vería qué me ofrece "GetLastError", y usaría "MoveFile" en lugar de "RenameFile" si no tuviera pensado migrar a Linux mi programa.
Por cierto, como no consigo enlazar con la ayuda de la función "MoveFile", la copio aquí (desde la ayuda que incluye Delphi 2007), por si sirve de algo: Cita:
|
¿Lo has ejecutado paso a paso? Si no lo has hecho, hazlo y mira a ver cual es la línea que no está funcionando bien; Revisa que las variables tienen los valores correctos. Si no estás "dando palos de ciego".
|
Tambien hay otra posibilidad para que de error, no puede estar abierta la base de datos por ningun programa para poder renombrar el archivo.
Saludos |
Hola,
Ahí está... por eso lo de recurrir a "GetLasError", para al menos intentar saber con qué error estamos tratando... :) |
ok, el error que me da es:
The Windows does not have scroll bars Y creo que el problema es el que menciona Mick Cita:
|
Alguien me podria decir como puedo quitar de los procesos al archivo que quiero renombrar, creo que con eso se podria resolver mi problema, porque creo (creo) que mis codigos están bien el unico problema que se me ocurre que pueda tener es que algo está usando mi archivo.
|
La franja horaria es GMT +2. Ahora son las 23:25:13. |
Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi