No borrar fichero (SOLUCIONADO)

No borrar fichero (SOLUCIONADO)

Postby Armando » Fri Oct 20, 2023 3:14 am

Amigos del foro:

El siguiente código

Code: Select all  Expand view

ShellExecute(0,"Open",cFile,,,1)
DELETE File(cFile)
 


Me presenta el problema de que al intentar abrir el fichero éste ya no existe
como si primero se eliminara (DELETE) y después el intento de abrirlo (SHELLEXECUTE)

Gracias por el apoyo
Last edited by Armando on Sat Oct 21, 2023 2:53 pm, edited 1 time in total.
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3226
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: No borrar fichero

Postby Willi Quintana » Fri Oct 20, 2023 3:55 am

Mi estimado,prueba asi:
Code: Select all  Expand view

ShellExecute(0,"Open",cFile,,,1)
SysWait(2)
DELETE File(cFile)
 
User avatar
Willi Quintana
 
Posts: 1019
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: No borrar fichero

Postby Armando » Fri Oct 20, 2023 4:16 am

Mr.

Si entiendo bien, una vez abierto el fichero (PDF) se esperará 2 segundos e
intentará borrar el fichero pero aún esta abierto.

Como que la solución puede ser abrir el PDF de forma modal y hasta que el
usuario cierre el PDF se procederá a borrarlo, el tema es que no se cómo
abrir el PDF modal :-(

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3226
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: No borrar fichero

Postby Willi Quintana » Fri Oct 20, 2023 2:36 pm

MI estimado, una idea...
Code: Select all  Expand view

copyfile(cFile, "TEMP\" + cFile
ShellExecute(0,"
Open","TEMP\" + cFile,,,1)
FERASE(cFile)
....
...
...
User avatar
Willi Quintana
 
Posts: 1019
Joined: Sun Oct 09, 2005 10:41 pm
Location: Cusco - Perú

Re: No borrar fichero

Postby Enrico Maria Giordano » Fri Oct 20, 2023 2:49 pm

Also try with WAITRUN().
User avatar
Enrico Maria Giordano
 
Posts: 8714
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Re: No borrar fichero

Postby Armando » Fri Oct 20, 2023 6:51 pm

Mr.

Gracias por la idea pero el problema es el mismo, trataré de explicarme mejor:

Tengo una tabla con un campo BLOB donde está almacenado un PDF, extraigo
el PDF en un archivo temporal para mostrarlo en vista previa y después de que el usuario
cierre la vista previa proceder a borrar el archivo PDF temporal.
No me interesa conservarlo pues lo tengo en la tabla

El ShellExecute intenta abrir el PDF temporal pero el DELETE ya se ejecutó y por lo tanto
el ShellExecute ya no encuentra el archivo.

Saludos

Willi Quintana wrote:MI estimado, una idea...
Code: Select all  Expand view

copyfile(cFile, "TEMP\" + cFile
ShellExecute(0,"
Open","TEMP\" + cFile,,,1)
FERASE(cFile)
....
...
...
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3226
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: No borrar fichero

Postby Armando » Fri Oct 20, 2023 6:52 pm

Mr. Enrico,

I didn't understand your idea, I'm sorry, can you expand on it

Regards

Enrico Maria Giordano wrote:Also try with WAITRUN().
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3226
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: No borrar fichero

Postby karinha » Fri Oct 20, 2023 6:58 pm

Armando, ¿por qué no lo borras solo cuando el usuario cierra el programa permanentemente?

Code: Select all  Expand view

FUNCTION CERRAR_TODO()

   IF FILE( "TUTOR09.LOG" )
      DELETEFILE( "TUTOR09.LOG" )
   ENDIF

   IF FILE( "ARCHIVO.PDF" )
      DELETEFILE( "ARCHIVO.PDF" )
   ENDIF

   lSalida := .F.

   DbCommitAll()
   DbUnLockAll()
   DbCloseAll()
   FreeResources()
   Release All
   SysRefresh()

   HB_GCALL( .T. )

   CLEAR MEMORY

   PostQuitMessage( 0 )

   QUIT

RETURN NIL
 


Regards, saludos.
João Santos - São Paulo - Brasil - Phone: +55(11)95150-7341
User avatar
karinha
 
Posts: 7822
Joined: Tue Dec 20, 2005 7:36 pm
Location: São Paulo - Brasil

Re: No borrar fichero

Postby Armando » Fri Oct 20, 2023 7:08 pm

Karinha:

Es una buena alternativa, voy a trabajar sobre eso

Pensé que con abrir el PDF modal sería la solución solo que
no sé especificarle al ShellExecute que abra el PDF modal.

Saludos
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3226
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México

Re: No borrar fichero

Postby sysctrl2 » Fri Oct 20, 2023 7:09 pm

sugiero lo que comenta Joao
al cerrar o salir de los sistemas
aFicheros := directory( ".\tmp\*.*" )
for i := 1 to len(aFicheros)
ferase( '.\tmp\'+aFicheros[i][1] )
next
Cesar Cortes Cruz
SysCtrl Software
Mexico

' Sin +- FWH es mejor "
User avatar
sysctrl2
 
Posts: 1020
Joined: Mon Feb 05, 2007 7:15 pm

Re: No borrar fichero

Postby Carles » Fri Oct 20, 2023 7:17 pm

Hola,

Entiendo q quieres borrar el fichero para q no se quede por alli una vez cierres el visor. O creas un hilo q este pendiente o despues de abrir puedes hacer algo como

While fErase(cFile) = -1
Syswait(1)
End

No lo he probado. Este paso te congela la aplicacion, claro

C.
Salutacions, saludos, regards

"...programar es fácil, hacer programas es difícil..."

UT Page -> https://carles9000.github.io/
Forum UT -> https://discord.gg/bq8a9yGMWh
Skype -> https://join.skype.com/cnzQg3Kr1dnk
User avatar
Carles
 
Posts: 1135
Joined: Fri Feb 10, 2006 2:34 pm
Location: Barcelona

Re: No borrar fichero

Postby Enrico Maria Giordano » Fri Oct 20, 2023 7:17 pm

Armando wrote:Mr. Enrico,

I didn't understand your idea, I'm sorry, can you expand on it

Regards

Enrico Maria Giordano wrote:Also try with WAITRUN().


Code: Select all  Expand view
WAITRUN( "your_pdf_reader.exe your_pdf_file.pdf" )
User avatar
Enrico Maria Giordano
 
Posts: 8714
Joined: Thu Oct 06, 2005 8:17 pm
Location: Roma - Italia

Re: No borrar fichero (SOLUCIONADO)

Postby Armando » Sat Oct 21, 2023 2:54 pm

Amigos:

Pues me decanté por la solución de Joao, borrar al salir.

Saludos a todo este excelente foro
SOI, s.a. de c.v.
estbucarm@gmail.com
http://www.soisa.mex.tl/
http://sqlcmd.blogspot.com/
Tel. (722) 174 44 45
Carpe diem quam minimum credula postero
User avatar
Armando
 
Posts: 3226
Joined: Fri Oct 07, 2005 8:20 pm
Location: Toluca, México


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 37 guests