Toon posts:

[win32/alg] Windows temp files laten deleten

Pagina: 1
Acties:

Verwijderd

Topicstarter
Ik heb een applicatie (in delphi, maar doet er even niet toe) die temp files maakt en deze execute.

Bijvoorbeeld, ik maak de file 'eendoc.doc' aan en voer deze uit (Word start dus op).
Mijn eigen applicatie draait natuurlijk gewoon door, en deze kan ook afgesloten worden terwijl Word nog draait.

Al die tijd kan het bestandje niet verwijderd worden en vanaf het moment dat mijn eigen applicatie niet meer draait, heb ik helemaal geen controle meer over de file.

Nu is mijn vraag of het mogelijk is dat je windows verteld dat de file weg mag als hij niet meer in gebruik is (soort van temporaryfile vlag oid).

NB: Natuurlijk kan je ook lijstjes van files die je aangemaakt heb bijhouden, maar dat is niet echt DE oplossing.

  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

Nee je kunt geen 'delayed deletes' maken nee, ondanks dat de FILE_ATTRIBUTE_TEMPORARY flag in CreateFile anders doet vermoeden ;)

Echter, ik zie het probleem niet met gewoon in de temporary files van de gebruiker werken? Wordt vanzelf 'ooit' een keer opgeschoond...

edit:
kunt trouwens ook afdwingen dat je applicatie niet gesloten wordt voordat Word weg is...

[ Voor 18% gewijzigd door curry684 op 18-06-2004 12:23 ]

Professionele website nodig?


  • dexter07051982
  • Registratie: November 2001
  • Laatst online: 16-07-2025
misschien een hele stomme opmerking.

Als je er nu gewoon voor zorgt dat je je prog niet kunt afsluiten voordat je word afsluit.

of

dat je prog locked totdat je word afsluit. (misschien dat afsluiten van het bestand wel voldoende is, maar dat zou je dan moeten proberen)

  • madwizard
  • Registratie: Juli 2002
  • Laatst online: 26-10-2024

madwizard

Missionary to the word of ska

Er is wel een flag FILE_FLAG_DELETE_ON_CLOSE die de file wist nadat alle handles gesloten zijn. Probleem alleen is dat je na het gebruik van deze flag de file niet meer kunt openen, zodat je dus word eerst moet opstarten en daarna de file met deze vlag moet openen (en meteen weer sluiten). Alleen dan wist ie em niet geloof ik, waarschijnlijk omdat word de file niet geopent heeft met die flag.

www.madwizard.org


  • curry684
  • Registratie: Juni 2000
  • Laatst online: 12-05 22:23

curry684

left part of the evil twins

madwizard schreef op 18 juni 2004 @ 12:42:
Er is wel een flag FILE_FLAG_DELETE_ON_CLOSE die de file wist nadat alle handles gesloten zijn. Probleem alleen is dat je na het gebruik van deze flag de file niet meer kunt openen, zodat je dus word eerst moet opstarten en daarna de file met deze vlag moet openen (en meteen weer sluiten). Alleen dan wist ie em niet geloof ik, waarschijnlijk omdat word de file niet geopent heeft met die flag.
Uit MSDN:
If there are existing open handles to the file, the call fails unless they were all opened with the FILE_SHARE_DELETE share mode.

Subsequent open requests for the file will fail, unless they specify the FILE_SHARE_DELETE share mode.
En Word opent niet in shared delete modus, dus dat gaat niet werken.

Professionele website nodig?


Verwijderd

Topicstarter
If there are existing open handles to the file, the call fails unless they were all opened with the FILE_SHARE_DELETE share mode.

Subsequent open requests for the file will fail, unless they specify the FILE_SHARE_DELETE share mode.
Grappig, het is er dus wel, maar je kan het bijna nooit gebruiken (icm programma's van derden).

Bedankt iig, ik ga denk ik toch maar voor de lijsten variant.
Pagina: 1