VB6 FSO CreateFolder erreur 58 (already exists) alors qu'il n'existe pas
Fermé
Herve_be
Messages postés
1015
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
10 mars 2024
-
15 juin 2020 à 11:37
Herve_be Messages postés 1015 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 10 mars 2024 - 5 août 2020 à 09:12
Herve_be Messages postés 1015 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 10 mars 2024 - 5 août 2020 à 09:12
A voir également:
- VB6 FSO CreateFolder erreur 58 (already exists) alors qu'il n'existe pas
- Erreur 0x80070643 - Guide
- Vb6 - Télécharger - Divers Utilitaires
- Excel : si valeur existe dans une plage alors ✓ - Forum Excel
- Excel vérifier si une valeur existe dans une colonne ✓ - Forum Excel
- Code erreur f3500-32 ✓ - Forum Bbox Bouygues
8 réponses
yg_be
Messages postés
22707
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
19 avril 2024
1 471
15 juin 2020 à 14:23
15 juin 2020 à 14:23
bonjour, peut-être pourrais-tu vérifier si le dossier existe avant de le créer?
Herve_be
Messages postés
1015
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
10 mars 2024
8
15 juin 2020 à 14:39
15 juin 2020 à 14:39
Il me sembler que c'est ce que je fais, regarde mon code
si "\Templates" existe je le supprime
je crée "\Templates"
si "\Templates" existe (donc il est vide puisque je viens de le créer) alors
je crée le sous-folder "\Templates\" & FName ==> erreur 58 !
si "\Templates" existe je le supprime
je crée "\Templates"
si "\Templates" existe (donc il est vide puisque je viens de le créer) alors
je crée le sous-folder "\Templates\" & FName ==> erreur 58 !
yg_be
Messages postés
22707
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
19 avril 2024
1 471
15 juin 2020 à 15:05
15 juin 2020 à 15:05
CreateFolder donne une erreur. A ta place, je serais curieux de vérifier ce qu'en pense FolderExists.
que vaut FName?
que vaut FName?
Herve_be
Messages postés
1015
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
10 mars 2024
8
15 juin 2020 à 15:21
15 juin 2020 à 15:21
Comme indiqué dans mon premier message, FName est un string qui contient le nom du sous-répertoire à créer.
Je ne comprends pas ta réponse
si le folder "Templates" existe je le supprime, pas d'erreur sur cette ligne, donc il n'existe pas ou plus
je crée le folder "Templates", pas d'erreur sur cette ligne donc il existe et est vide puisque je viens de le créer
si le folder "Templates" existe je crée le sous-folder Fname dans "Templates" ==> erreur 58
Je ne comprends pas ta réponse
si le folder "Templates" existe je le supprime, pas d'erreur sur cette ligne, donc il n'existe pas ou plus
je crée le folder "Templates", pas d'erreur sur cette ligne donc il existe et est vide puisque je viens de le créer
si le folder "Templates" existe je crée le sous-folder Fname dans "Templates" ==> erreur 58
yg_be
Messages postés
22707
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
19 avril 2024
1 471
15 juin 2020 à 15:30
15 juin 2020 à 15:30
Je vois bien ce que ton programme fait avec FName, et ce que tu supposes qu'il contient.
FName est une variable qui contient une valeur. Quelle est cette valeur quand l'erreur se produit?
Par ailleurs, je suggère d'utiliser FolderExists avant d’appeler CreateFolder, afin de vérifier si CreateFolder et FolderExists sont d'accord sur l'existence du dossier. Sois actif, modifie ton programme, ajoute du diagnostic, cela ne peut que t'aider.
FName est une variable qui contient une valeur. Quelle est cette valeur quand l'erreur se produit?
Par ailleurs, je suggère d'utiliser FolderExists avant d’appeler CreateFolder, afin de vérifier si CreateFolder et FolderExists sont d'accord sur l'existence du dossier. Sois actif, modifie ton programme, ajoute du diagnostic, cela ne peut que t'aider.
pijaku
Messages postés
12263
Date d'inscription
jeudi 15 mai 2008
Statut
Modérateur
Dernière intervention
4 janvier 2024
2 743
Modifié le 15 juin 2020 à 15:43
Modifié le 15 juin 2020 à 15:43
Ce que te demandes yg_be (salutations au passage), c'est de vérifier le tout.
1- vérifier l'existence de ton sous-dossier
2- vérifier l'existence de ton fichier.
On ne fait, ici, que supposer.
VB6 n'est plus maintenu depuis longtemps maintenant, et, déjà sous win 2000, il y avait plein de bugs...
Vérifies le tout avec la fonction Dir() peut-être :
ça devrait t'indiquer où se situe l'erreur, si toutefois il y en a une...
1- vérifier l'existence de ton sous-dossier
2- vérifier l'existence de ton fichier.
On ne fait, ici, que supposer.
VB6 n'est plus maintenu depuis longtemps maintenant, et, déjà sous win 2000, il y avait plein de bugs...
Vérifies le tout avec la fonction Dir() peut-être :
Dim fPath As New FileSystemObject If fPath.FolderExists(App.Path & "\Templates") Then fPath.DeleteFolder (App.Path & "\Templates"), True DoEvents ' donc "Templates" n'existe pas fPath.CreateFolder (App.Path & "\Templates") DoEvents MsgBox Dir(App.Path & "\Templates\") MsgBox Dir(App.Path & "\Templates\" & FName) If fPath.FolderExists(App.Path & "\Templates") Then ' donc "Templates" existe et est vide fPath.CreateFolder (App.Path & "\Templates\" & FName) ' ==> erreur 58 !
ça devrait t'indiquer où se situe l'erreur, si toutefois il y en a une...
Herve_be
Messages postés
1015
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
10 mars 2024
8
15 juin 2020 à 16:00
15 juin 2020 à 16:00
Fname peut contenir une des valeurs suivantes
Alpheus
Aqua Illumination
Aqua Medic
Aquanest
Arcadia
ATI
Divers
DsunY
Ecotech
Eshine Aquabeauty
Evergrow
Giesemann
Maxspect
Orphek
Rak-Tech
Vertex
c'est à dire la liste des sous-répertoires qu'il est sensé créer.
Je ne peux pas vérifier avec Dir chez les 4.791 utilisateurs sachant que l'erreur s'est produite chez 2 d'entre eux, chez moi ça fonctionne très bien.
J'ai ajouté le nom du folder qu'il tente de créer dans le message d'erreur 58, ainsi je saurai au moins duquel il s'agit.
Alpheus
Aqua Illumination
Aqua Medic
Aquanest
Arcadia
ATI
Divers
DsunY
Ecotech
Eshine Aquabeauty
Evergrow
Giesemann
Maxspect
Orphek
Rak-Tech
Vertex
c'est à dire la liste des sous-répertoires qu'il est sensé créer.
Je ne peux pas vérifier avec Dir chez les 4.791 utilisateurs sachant que l'erreur s'est produite chez 2 d'entre eux, chez moi ça fonctionne très bien.
J'ai ajouté le nom du folder qu'il tente de créer dans le message d'erreur 58, ainsi je saurai au moins duquel il s'agit.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Herve_be
Messages postés
1015
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
10 mars 2024
8
Modifié le 3 août 2020 à 10:07
Modifié le 3 août 2020 à 10:07
Bonjour,
J'ai à nouveau ponctuellement la même erreur alors que la plupart du temps tout fonctionne.
Je rappelle mon code
58 signifie "File already exists" : pourquoi survient-elle lors de la création d'un répertoire ?
J'ai à nouveau ponctuellement la même erreur alors que la plupart du temps tout fonctionne.
Je rappelle mon code
Dim sh As Object Dim fPath As New FileSystemObject If fPath.FolderExists(App.Path & "\Templates") Then fPath.DeleteFolder (App.Path & "\Templates"), True ' Destruction complète du dossier et des fichiers qu'il contient DoEvents fPath.CreateFolder (App.Path & "\Templates") ' Création du dossier vide DoEvents If Not fPath.FolderExists(App.Path & "\Templates") Then ' Vérifier si le dossier a bien été créé MsgBox ("Impossible de créer le répertoire " & App.Path & "\Templates"), vbExclamation Else fPath.CreateFolder (App.Path & "\Templates\" & Rootitem.Name) ' => erreur 58App.Path & "\Templates\" & Rootitem.Name = "C:\AQUA\Templates\Aquanest"
58 signifie "File already exists" : pourquoi survient-elle lors de la création d'un répertoire ?
yg_be
Messages postés
22707
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
19 avril 2024
1 471
3 août 2020 à 16:52
3 août 2020 à 16:52
as-tu ajouté le code avec les dir, de façon à avoir plus d'information en cas d'erreur?
si c'est une problème intermittent qui se résout tout seul, il suffit peut-être, en cas d'erreur, d'attendre et de réessayer?
si c'est une problème intermittent qui se résout tout seul, il suffit peut-être, en cas d'erreur, d'attendre et de réessayer?
Herve_be
Messages postés
1015
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
10 mars 2024
8
3 août 2020 à 17:03
3 août 2020 à 17:03
Comme je l'ai expliqué je ne peux pas ajouter les Dir
parce que parmi 4.837 utilisateurs le problème s'est posé 2 fois mi juin et aujourd’hui.
Les utilisateurs qui ont rencontré ce problème ne l'ont pas signalé, je le sais parce que le logiciel envoie un rapport d'erreur, je ne pense pas qu'ils feront attention au message.
Je ne vois pas non plus ce que ces Dir pourraient apporter
soit le répertoire existe alors pourquoi n'a-t-il pas été supprimé ?
soit le répertoire n'existe pas alors pourquoi n'a-t-il pas été créé ?
Je teste d'ailleurs ces 2 cas en FSO :
si le répertoire existe, je le supprime, donc il n'existe pas
je crée le répertoire donc il est vide
si le répertoire existe j'ajoute un sous répertoire => erreur 58 !
parce que parmi 4.837 utilisateurs le problème s'est posé 2 fois mi juin et aujourd’hui.
Les utilisateurs qui ont rencontré ce problème ne l'ont pas signalé, je le sais parce que le logiciel envoie un rapport d'erreur, je ne pense pas qu'ils feront attention au message.
Je ne vois pas non plus ce que ces Dir pourraient apporter
soit le répertoire existe alors pourquoi n'a-t-il pas été supprimé ?
soit le répertoire n'existe pas alors pourquoi n'a-t-il pas été créé ?
Je teste d'ailleurs ces 2 cas en FSO :
si le répertoire existe, je le supprime, donc il n'existe pas
je crée le répertoire donc il est vide
si le répertoire existe j'ajoute un sous répertoire => erreur 58 !
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 701
4 août 2020 à 08:10
4 août 2020 à 08:10
Bonjour a tous,
Excusez l'incruste.
je le sais parce que le logiciel envoie un rapport d'erreur, je ne pense pas qu'ils feront attention au message.
Modifiez le rapport d'erreur en le complétant des infos sur le fichier en cause
parce que parmi 4.837 utilisateurs
Ben oui, mais soit vous résolvez l'erreur, soit vous la traitez.
yg_be et pijku vous ont donne des pistes
Les deux PC qui vous embêtent sont différents en quoi par rapport au autres?
Dans le code que vous montrez le programme s'arrête !
Le rapport d'erreur arrive par miracle?
Excusez l'incruste.
je le sais parce que le logiciel envoie un rapport d'erreur, je ne pense pas qu'ils feront attention au message.
Modifiez le rapport d'erreur en le complétant des infos sur le fichier en cause
parce que parmi 4.837 utilisateurs
Ben oui, mais soit vous résolvez l'erreur, soit vous la traitez.
yg_be et pijku vous ont donne des pistes
Les deux PC qui vous embêtent sont différents en quoi par rapport au autres?
Dans le code que vous montrez le programme s'arrête !
Le rapport d'erreur arrive par miracle?
Herve_be
Messages postés
1015
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
10 mars 2024
8
Modifié le 4 août 2020 à 12:24
Modifié le 4 août 2020 à 12:24
Bonjour,
Je n'ai aucune idée des PC utilisés.
En car d'erreur un
Il est possible d'ajouter des infos dans ce fichier en créant une nouvelle version du logiciel.
J'ai essayé avec ma version de test alors que tous les répertoires sont bien créés
Je n'ai aucune idée des PC utilisés.
En car d'erreur un
on error gotoappelle une Sub qui envoie un fichier sur le serveur.
Il est possible d'ajouter des infos dans ce fichier en créant une nouvelle version du logiciel.
J'ai essayé avec ma version de test alors que tous les répertoires sont bien créés
MsgBox Dir(App.Path & "\Templates\")donne un message vide !
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
1 701
4 août 2020 à 13:29
4 août 2020 à 13:29
Re,
Tout a fait Thierry, vous voulez lister des repertoires, pas des fichiers.
a voir:
http://boisgontierjacques.free.fr/fichiers/ArborescenceRepertoireSousRep.xls
Tout a fait Thierry, vous voulez lister des repertoires, pas des fichiers.
a voir:
http://boisgontierjacques.free.fr/fichiers/ArborescenceRepertoireSousRep.xls
yg_be
Messages postés
22707
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
19 avril 2024
1 471
4 août 2020 à 13:47
4 août 2020 à 13:47
comment détermines-tu à quelle instruction l'erreur s'est produite?
comment se termine le traitement de l'erreur?
pourquoi ne pas utiliser FolderExists() au lieu de dir()?
as-tu envisagé, en cas d'erreur, d'attendre et de réessayer?
comment se termine le traitement de l'erreur?
pourquoi ne pas utiliser FolderExists() au lieu de dir()?
as-tu envisagé, en cas d'erreur, d'attendre et de réessayer?
Herve_be
Messages postés
1015
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
10 mars 2024
8
>
f894009
Messages postés
17185
Date d'inscription
dimanche 25 novembre 2007
Statut
Membre
Dernière intervention
15 avril 2024
4 août 2020 à 14:02
4 août 2020 à 14:02
Qui est Thierry ?
Herve_be
Messages postés
1015
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
10 mars 2024
8
>
yg_be
Messages postés
22707
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
19 avril 2024
4 août 2020 à 14:09
4 août 2020 à 14:09
comment détermines-tu à quelle instruction l'erreur s'est produite?
comment se termine le traitement de l'erreur?
Msgbox + envoi d'un ficher sur le serveur puis
pourquoi ne pas utiliser FolderExists() au lieu de dir()?
Je n'utilise pas Dir, j'utilise .Folderexists, voir mon code ici https://forums.commentcamarche.net/forum/affich-36712177-vb6-fso-createfolder-erreur-58-already-exists-alors-qu-il-n-existe-pas?utm_source=ccm&utm_campaign=newAnswer&utm_medium=mail#8
J'ai essayé ce que Pijaku préconise ici https://forums.commentcamarche.net/forum/affich-36712177-vb6-fso-createfolder-erreur-58-already-exists-alors-qu-il-n-existe-pas?utm_source=ccm&utm_campaign=newAnswer&utm_medium=mail#6
as-tu envisagé, en cas d'erreur, d'attendre et de réessayer?
Pour attendre il faut qu'un évènement indique que l'attente est terminée sinon on boucle : attendre quoi ?
Erl
comment se termine le traitement de l'erreur?
Msgbox + envoi d'un ficher sur le serveur puis
end
pourquoi ne pas utiliser FolderExists() au lieu de dir()?
Je n'utilise pas Dir, j'utilise .Folderexists, voir mon code ici https://forums.commentcamarche.net/forum/affich-36712177-vb6-fso-createfolder-erreur-58-already-exists-alors-qu-il-n-existe-pas?utm_source=ccm&utm_campaign=newAnswer&utm_medium=mail#8
J'ai essayé ce que Pijaku préconise ici https://forums.commentcamarche.net/forum/affich-36712177-vb6-fso-createfolder-erreur-58-already-exists-alors-qu-il-n-existe-pas?utm_source=ccm&utm_campaign=newAnswer&utm_medium=mail#6
as-tu envisagé, en cas d'erreur, d'attendre et de réessayer?
Pour attendre il faut qu'un évènement indique que l'attente est terminée sinon on boucle : attendre quoi ?
yg_be
Messages postés
22707
Date d'inscription
lundi 9 juin 2008
Statut
Contributeur
Dernière intervention
19 avril 2024
1 471
>
Herve_be
Messages postés
1015
Date d'inscription
mercredi 4 août 2010
Statut
Membre
Dernière intervention
10 mars 2024
4 août 2020 à 14:56
4 août 2020 à 14:56
attendre une demi seconde, et réessayer.