Un simple RmDir qui me renvoie une violation de partage

Un simple RmDir qui me renvoie une violation de partage - Delphi/Pascal - Programmation

Marsh Posté le 20-12-2008 à 13:39:16    

Bonjour à tous :)
 
RmDir commence à me...  
 
Cette instruction RmDir(Rep) où Rep est un string, correctement initialisé avec un nom de répertoire qui existe bien, me retourne systématiquement cette erreur : 32 (violation de partage).
 
Il n'est pourtant pas utilisé, et il est bien vide...  
 
Pour contourner ça, j'ai même encodé la création d'un fichier de commande effectuant le boulot ! Pareil : il n'efface pas le répertoire en question ! Appelé avec CreateProcess() ou avec ShellExecute, rien à faire.  
 
Le même fichier de commande appelé avec un gestionnaire de fichier efface pourtant bien le répertoire !
 
C'est quoi, ce truc :heink: ?


Message édité par HERIBERT le 20-12-2008 à 13:40:34
Reply

Marsh Posté le 20-12-2008 à 13:39:16   

Reply

Marsh Posté le 21-12-2008 à 12:48:56    

Est-ce que le problème survient avec n'importe quel répertoire (par exemple un que vous créer à la main) ou bien uniqument avec un répertoire particulier ?
 
Est-ce que le nom du répertoire contient des espaces ou des caractères accentués ou fait plus de huit caractères  ? Pourriez-vous essayer avec un répertoire dont le nom est "TOTO" ?
 
Qu'entendez-vous par un appel "avec un gestionnaire de fichier" ?
 
 

Reply

Marsh Posté le 21-12-2008 à 14:42:59    

olivthill a écrit :

Est-ce que le problème survient avec n'importe quel répertoire (par exemple un que vous créer à la main) ou bien uniqument avec un répertoire particulier ?
 
Est-ce que le nom du répertoire contient des espaces ou des caractères accentués ou fait plus de huit caractères  ? Pourriez-vous essayer avec un répertoire dont le nom est "TOTO" ?
 
Qu'entendez-vous par un appel "avec un gestionnaire de fichier" ?
 
 


 
Merci ;) Alors :  
 
1) Le répertoire est créé, s'il n'existe pas déjà, par le logiciel. Celui-ci, en rendant la main à Windows, voudrait bien pouvoir virer le répertoire s'il est vide, donc devenu inutile.  
 
2) Il s'appelle C:\Web_ScrapBook
 
3) "Avec un gestionnaire de fichier" : j'utilise Total Commander. Lui supprime le répertoire sans aucune difficulté ni erreur.  
 
Bizarre :heink:
 

Reply

Marsh Posté le 21-12-2008 à 15:56:58    

Je ne suis pas sûr que RmDir prennent "C:\". En tous cas dans les vieilles versions que j'ai connues, il me semble me rappeler qu'il ne fallait pas mettre la lettre du disque. Il faudrait tester avec un répertoire "C:\TOTO" qui serait créé avant que le programme ne soit lancé pour voir si le problème vient du RmDir ou vient du contexte de son utilisation. Mais c'est peut-être autre chose. Par exemple, peut-être qu'un fichier est en cours de création dans ce répertoire et qu'il n'est pas fermé. Autrement, pour un répertoire temporaire, personnellement, je n'aurais pas choisi de le mettre au niveau de la racine, parce que cela encombre ce début d'arborescence et parce que la racine a toujours des droits et un comportement un peu particulier.

Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed