DeleteFile() ??

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Re: DeleteFile() ??

Message par Anonyme2 »

Pour permettre l'effacement d'un fichier en lecture seule etc, avant de l'effacer, il faut lui modifier les attributs avec la commande PB SetFileAttributes()

Code : Tout sélectionner

SetFileAttributes("Nom du fichier avec chemin", #PB_FileSystem_Normal)
Un fichier est mappé lorsque l'on utilise par exemple les API windows CreateFileMapping, CreateFileMappingNuma, OpenFileMapping
(http://msdn.microsoft.com/en-us/library ... 85%29.aspx) et (http://msdn.microsoft.com/en-us/library ... 85%29.aspx)

Normalement on ne doit pas pouvoir effacer un fichier ouvert par un autre process, mais il faudrait regarder les droits d'accès de sécurité.
(http://msdn.microsoft.com/en-us/library ... 85%29.aspx)
anissa
Messages : 136
Inscription : mer. 13/oct./2010 15:43

Re: DeleteFile() ??

Message par anissa »

Pour permettre l'effacement d'un fichier en lecture seule etc, avant de l'effacer, il faut lui modifier les attributs avec la commande PB SetFileAttributes()

Code : Tout sélectionner

SetFileAttributes("Nom du fichier avec chemin", #PB_FileSystem_Normal)
ça je le sais, je l'ai déjà fait (voir mon premier message), je rends toujours NORMAL le fichier lu avant de le supprimer
Un fichier est mappé lorsque l'on utilise par exemple les API windows CreateFileMapping, CreateFileMappingNuma, OpenFileMapping... Normalement on ne doit pas pouvoir effacer un fichier ouvert par un autre process, mais il faudrait regarder les droits d'accès de sécurité.


Merci beaucoup pour cette information, donc c'est sûrement à cause de cette deuxième cause que certains fichiers ne veulent pas s'effacer. Mais, y a til un moyen pour forcer ces derniers à s'effacer?

Merci pour tout
pat
Messages : 411
Inscription : mar. 24/nov./2009 15:13

Re: DeleteFile() ??

Message par pat »

Bonjour à tous,

A Anissa :
En voulant faire une copie de fichiers, j'ai donc créé un fichier que je ne pouvais plus supprimer.
J'avais beau essayer de le supprimer par l'Explorateur de Windows, rien n'y faisait, et l'ordinateur devenait lent.
Je me suis mis à essayer de le supprimer par Purebasic, mais pareil, toujours pas de suppression de ce fichier possible.
En utilisant l'invite de commande fourni, j'ai utilisé la commande bien connu MS-DOS delete (ou erase) et, merveille, le fichier a été parfaitement supprimé.
Essaie-donc de faire comme moi en essayant de supprimer des fichiers qui ne veulent pas se supprimer en utilisant l'invite de commande fourni avec Windows en utilisant la commande delete (ou erase). Situe-toi bien dans le répertoire voulu.
Cet exemple te donnera peut-être quelques éléments de réponse. :)
Répondre