OVH Cloud OVH Cloud

DeleteFile() sous NT4...

1 réponse
Avatar
Anthony
Bonjour,
Je travaille sous NT 4 sur des postes novell, sur un programme qui tourne
sans droits d'utilisateur privilégiés.

Je créé pour mes besoins personnels un repertoire dans le repertoire
temporaire (avec GetTempPath() et CreateDirectory) et je copie les fichiers
que je dois traiter avec la fonction CopyFile().

Ensuite je dois effacer les fichiers traités, et ce avec DeleteFile(), tout
du moins c'est ce qui me semblait le plus trivial. Seulement, il me laisse
toujours des fichiers dans ce répertoire qu'il ne veut pas supprimer, en me
disant que je n'ai pas le droit de les effacer. Si je vérifie ensuite ces
fichiers, j'ai le droit modifier dessus (RWXD) et je peux les effacer à la
main...
Je me disais qu'en utilisant l'API windows, avec CopyFile et DeleteFile je
n'aurais aucun problème mais ce n'est pas le cas, pourriez vous me dire si
il y a un moyen sûr et efficace d'effacer des fichiers (car le répertoire
après ne peut etre supprimé), que je n'ai pas ce genre de problèmes ?

Merci d'avance,

Anthony
--
It's a bird.. It's a plane..
No, it's KernelMan, faster than a speeding bullet, to your rescue.
Doing new kernel versions in under 5 seconds flat..
-- Linus, in the announcement for 1.3.27

1 réponse

Avatar
Frédéric Lachasse
"Anthony" wrote in message
news:40efd227$0$11395$
Bonjour,
Je travaille sous NT 4 sur des postes novell, sur un programme qui tourne
sans droits d'utilisateur privilégiés.

Je créé pour mes besoins personnels un repertoire dans le repertoire
temporaire (avec GetTempPath() et CreateDirectory) et je copie les


fichiers
que je dois traiter avec la fonction CopyFile().

Ensuite je dois effacer les fichiers traités, et ce avec DeleteFile(),


tout
du moins c'est ce qui me semblait le plus trivial. Seulement, il me laisse
toujours des fichiers dans ce répertoire qu'il ne veut pas supprimer, en


me
disant que je n'ai pas le droit de les effacer. Si je vérifie ensuite ces
fichiers, j'ai le droit modifier dessus (RWXD) et je peux les effacer à la
main...
Je me disais qu'en utilisant l'API windows, avec CopyFile et DeleteFile je
n'aurais aucun problème mais ce n'est pas le cas, pourriez vous me dire si
il y a un moyen sûr et efficace d'effacer des fichiers (car le répertoire
après ne peut etre supprimé), que je n'ai pas ce genre de problèmes ?



DeleteFile() ne peut pas effacer un fichier ouvert. C'est probablement ton
problème: le traitement après CopyFile() ouvre le fichier pour lecture et/ou
écriture, et tu oublies de le fermer à la fin du traitement, du coup
DeleteFile() ne marche pas. D'autant plus que l'erreur dans ce cas est le
même code que pour un accès refusée.

--
Frédéric Lachasse - ECP86