Page 1 of 1

Error 32 al querer renombrarse un achivo

Posted: Wed Mar 06, 2024 6:58 pm
by goosfancito
Hola.
Cuando quiero usar la función Frename() no me deja renombrar el archivo y me tira un -1, mirando con el FError() me tira el numero 32
que significa? como puedo solucionarlo?

gracias.

Re: Error 32 al querer renombrarse un achivo

Posted: Wed Mar 06, 2024 9:51 pm
by Antonio Linares
Para este tipo de consultas es muy recomendable preguntar primero a chatgpt y a google Gemini, para tener una primera idea de lo que pueda estar pasando.

Re: Error 32 al querer renombrarse un achivo

Posted: Thu Mar 07, 2024 4:46 am
by goosfancito
Te comento donde tengo el problema.

Code: Select all | Expand

 LOCAL hFile      := FOpen( ::cFile )
...
fclose(hfile)

fwdbg hFile            -------------------- aca hfile siempre me da un numero diferente de cero, ya probe hacer esto hFile:= Nil

frename(::cfile, "ejemplo.xml")
 
En cambio si hago esto otro si me funciona el frenarme si no lo abro antes:

Code: Select all | Expand

frenarme(::cFile, "ejemplo.xml")
 

Re: Error 32 al querer renombrarse un achivo

Posted: Thu Mar 07, 2024 7:30 am
by Antonio Linares
Prueba a hacer un SysRefresh() antes del rename para darle opción a Windows a procesar tu petición:

fclose(hfile)
SysRefresh()
...

Re: Error 32 al querer renombrarse un achivo

Posted: Thu Mar 07, 2024 10:41 am
by goosfancito
Consulto:

Si abro un archivo con

Code: Select all | Expand

  LOCAL hFile      := FOpen( ::cFile )
 
y luego lo cierro con

Code: Select all | Expand

fclose(hFile)
sysrefresh()
 
y hago un fwdbg hFile, el valor de "hfile" debe ser "nil"?

porque me sigue devolvieron un valor numérico.

Re: Error 32 al querer renombrarse un achivo

Posted: Thu Mar 07, 2024 1:41 pm
by paquitohm
hfile toma valor, y aunque se cierre con FClose() ese valor permanece.
No hay ningun tipo de ligazón entre hFile y el fichero al que representa más que con el uso de las funciones file

Re: Error 32 al querer renombrarse un achivo

Posted: Thu Mar 07, 2024 3:24 pm
by karinha

Code: Select all | Expand

#Include "FiveWin.ch"
#Include "Fileio.ch"

FUNCTION Main()

   LOCAL nResult
   // LOCAL hFile := FOpen( "TEXTO.txt", FO_READWRITE )
   LOCAL hFile := FOpen( "TEXTO.txt" )

   IF .NOT. FILE( "TEXTO.txt" )

      ? " Ooopppsss "

      RETURN NIL

   ENDIF

   fClose( hfile )

   nResult := FRename( "TEXTO.txt", "TEXTO1.txt" )

   IF nResult == F_ERROR

      ? "No se pudo cambiar el nombre del archivo"

   ENDIF

RETURN NIL

// FIN / END
 
Regards, saludos.

Re: Error 32 al querer renombrarse un achivo

Posted: Thu Mar 07, 2024 4:55 pm
by Willi Quintana
MI estimado, una salida:

Code: Select all | Expand

LOCAL hFile 
.......
rename(::cfile, "ejemplo.xml")
hFile      := FOpen( ::cFile )
.....
...
..
.
fclose(hfile)