DeleteFile() ??

Vous débutez et vous avez besoin d'aide ? N'hésitez pas à poser vos questions
anissa
Messages : 136
Inscription : mer. 13/oct./2010 15:43

DeleteFile() ??

Message par anissa »

Bonjour à tous

Code : Tout sélectionner

If DeleteFile(FileName$)
   Debug "Fichier supprimé"
Else
   Debug "Le fichier n'a pas pu être supprimé"  ; pourquoi?? 
Endif
Ma question est très simple: pourquoi ce code ne supprime pas tous les fichiers,
il supprime certains fichiers mais pas tous. Je me suis dit alors qu'il supprime peut être
les fichiers dont l'attribut est différent de (readonly), alors j'ai modifié les attributs de tous
les fichiers (readonly) avant de les supprimer.

Même résultat

Quelqu'un a une idée ?
nico
Messages : 3702
Inscription : ven. 13/févr./2004 0:57

Re: DeleteFile() ??

Message par nico »

T'es sous quel OS?

Tu veux supprimer des fichiers dans quel dossier? (chemin complet)

N'oublie pas qu'il faut peut être avoir les droits administrateurs pour supprimer certains fichiers!
anissa
Messages : 136
Inscription : mer. 13/oct./2010 15:43

Re: DeleteFile() ??

Message par anissa »

T'es sous quel OS?
Window XP Sp3
Tu veux supprimer des fichiers dans quel dossier? (chemin complet)
Plusieurs dossiers, c'est le chemin complet qui est défini dans FileName$
N'oublie pas qu'il faut peut être avoir les droits administrateurs pour supprimer certains fichiers!
Ah Bon ? exemples? et comment le savoir ?
Il y a des fichiers que je connais bien (certains ont été créés par moi même et d'autres dérivés ou temporaires...)
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: DeleteFile() ??

Message par Ar-S »

As tu vérifié que ton fichier à supprimer n'est pas en train de tourner ?
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
anissa
Messages : 136
Inscription : mer. 13/oct./2010 15:43

Re: DeleteFile() ??

Message par anissa »

As tu vérifié que ton fichier à supprimer n'est pas en train de tourner ?
Non, tous les fichiers concernés sont au repos (et fermés).

Est ce que cela ne vous est jamais arrivé?
Avatar de l’utilisateur
Ar-S
Messages : 9539
Inscription : dim. 09/oct./2005 16:51
Contact :

Re: DeleteFile() ??

Message par Ar-S »

non..

Peux tu donner un vrai exemple de chemin ?
~~~~Règles du forum ~~~~
⋅.˳˳.⋅ॱ˙˙ॱ⋅.˳Ar-S ˳.⋅ॱ˙˙ॱ⋅.˳˳.⋅
W11x64 PB 6.x
Section HORS SUJET : ICI
LDV MULTIMEDIA : Dépannage informatique & mes Logiciels PB
UPLOAD D'IMAGES : Uploader des images de vos logiciels
anissa
Messages : 136
Inscription : mer. 13/oct./2010 15:43

Re: DeleteFile() ??

Message par anissa »

Peux tu donner un vrai exemple de chemin ?
En fait, j'utilise un ExamineDirectory() et en parcourant plusieurs répertoires
j'affiche sur un grid le chemin complet du fichier répondant aux critères définis. La suppression se fait donc à l'aide d'un bouton après avoir sélectionné le fichier à supprimer), le grid est composé de 2 colonnes

colonne 1: nom fichier (exemple: purebasic.exe)
colonne 2: chemin complet v(exemple : c:\prorgram file\purebasic.exe)

Pour supprimer un fichier je fais donc:

Code : Tout sélectionner

wRow=GetGadgetState(#Grid)                            ; je récupère la ligne sélectionnée 
If Wrow>=0 
   WFile$=GetGatgetItemText(#Grid,wRow,0)        ; je récupère le nom du fichier à supprimer
   WFullPath$=GetGatgetItemText(#Grid,wRow,1)  ; je récupère le chemin complet 
   If DeleteFile(WFullPath$)
      Debug "Le fichier " +   Wfile$ + " a été supprimé")
   Else
      Debug "Le fichier " +   Wfile$ + " n'a pu être supprimé")
   EndIf
EndIf

Je n'ai pas le code sur moi maintenant mais ça correspond globalement à cet exemple..
Backup
Messages : 14526
Inscription : lun. 26/avr./2004 0:40

Re: DeleteFile() ??

Message par Backup »

anissa
Messages : 136
Inscription : mer. 13/oct./2010 15:43

Re: DeleteFile() ??

Message par anissa »

??

Dobro ! Ai-je le droit à une petite explication?
Avatar de l’utilisateur
SPH
Messages : 4937
Inscription : mer. 09/nov./2005 9:53

Re: DeleteFile() ??

Message par SPH »

anissa a écrit :
??

Dobro ! Ai-je le droit à une petite explication?
Un aimant permet d'effacer les donnees d'un disque dur.

!i!i!i!i!i!i!i!i!i!
!i!i!i!i!i!i!
!i!i!i!
//// Informations ////
Intel Core i7 4770 64 bits - GTX 650 Ti
Version de PB : 6.12LTS- 64 bits
anissa
Messages : 136
Inscription : mer. 13/oct./2010 15:43

Re: DeleteFile() ??

Message par anissa »

Un aimant permet d'effacer les donnees d'un disque dur.
Avez-vous bien dormi tous les deux? Dobro ! Sph ! Au secours ! Dites moi que je ne rêve pas!!!
Le Soldat Inconnu
Messages : 4312
Inscription : mer. 28/janv./2004 20:58
Localisation : Clermont ferrand OU Olsztyn
Contact :

Re: DeleteFile() ??

Message par Le Soldat Inconnu »

personnellement, je n'ai jamais eu de soucis avec DeleteFile()

Vérifie bien qu'il n'y a pas de problème de syntaxe dans ton code, par exemple en ajoutant un Debug NomFichier et un Debug FileSize(NomFichier) avant le DeleteFile(NomFichier)
Histoire de vérifier qu'il n'y a pas une coquille de syntaxe qui s'est glissée dans le code
Je ne suis pas à moitié Polonais mais ma moitié est polonaise ... Vous avez suivi ?

[Intel quad core Q9400 2.66mhz, ATI 4870, 4Go Ram, XP (x86) / 7 (x64)]
anissa
Messages : 136
Inscription : mer. 13/oct./2010 15:43

Re: DeleteFile() ??

Message par anissa »

Vérifie bien qu'il n'y a pas de problème de syntaxe dans ton code, par exemple en ajoutant un Debug NomFichier et un Debug FileSize(NomFichier) avant le DeleteFile(NomFichier)
Histoire de vérifier qu'il n'y a pas une coquille de syntaxe qui s'est glissée dans le code
Justement, j'affiche dans le grid (listIconGadget) le nom du fichier ainsi que le chemin complet, donc je peux voir en clair sur le grid la liste de tous les fichiers (+ les chemins à côté), apparemment il n'y a rien à signaler. Pour la taille du fichier (file size) ça sert à quoi ce test? Pour la syntaxe, si elle était mauvaise, elle n'aurait pas fonctionné pour un certain nombre de fichiers... (quelques fichiers sont effectivement supprimés, mais une bonne partie ne l'est pas) je ne sais pas comment faire pour que vous testiez mon code du moment que ce ne sont pas les mêmes fichiers qui se trouvent sur nos pc...

Compliqué n'est ce pas??
Anonyme2
Messages : 3518
Inscription : jeu. 22/janv./2004 14:31
Localisation : Sourans

Re: DeleteFile() ??

Message par Anonyme2 »

Si vraiment le nom de fichier est correct (c'est sous windows ?), il y a de grande chance pour que l'API utlisée par PureBasic retourne uen erreur.
Je pense que l'API utilisée doit être DeleteFile (http://msdn.microsoft.com/en-us/library ... 85%29.aspx) et si c'est le cas il y a un code d'erreur
Met ceci après ton deletefile

Code : Tout sélectionner

debug GetlastError_()
les codes d'erreurs suivant peuvent être retournés :
2 : Le fichier n'a pas été trouvé --> c'est un problème avec ton nom de fichier

3 : Le chemin du fichier n'a pas été trouvé

5 : (ERROR_ACCESS_DENIED), Le fichier est en lecture seul

Si le fichier est mappé en mémoire, la fonction échoue etc.

Le doc MS dit aussi qu'il faut utiliser l'API SHFileOperation si les opérations de suppression utilise la récursivité.



Les codes d'erreurs c'est ici
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 »

Si vraiment le nom de fichier est correct (c'est sous windows ?),
Oui sous windows Xp P3
Met ceci après ton deletefile

Code : Tout sélectionner

debug GetlastError_()
Merci beaucoup pour cette information, je vais l'essayer demain
(ERROR_ACCESS_DENIED), Le fichier est en lecture seul
Est ce que je peux changer l'attribut du fichier durant le traitement juste avant de le supprimer? (c'est ce que je fais mais je ne sais pas si l'attribut change réelllement, je n'ai pas vérifié)
Si le fichier est mappé en mémoire, la fonction échoue etc.
Là je pige rien du tout, c'est quoi mappé??

Merci pour tout
(J'essayerai demain)
Répondre