Répertoire qui existe mais qui n'existe pas

Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 - 16 oct. 2020 à 11:26
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 - 21 janv. 2021 à 11:20
Bonjour,
Je veux créer le répertoire "Aquanest" dans le répertoire "Templates".
Je vérifie d'abord que le répertoire "Templates" existe mais j'obtiens quand même erreur 76 Path not found !
Voici mon code
      Dim fPath As New FileSystemObject
If fPath.FolderExists(App.Path & "\Templates") Then fPath.DeleteFolder (App.Path & "\Templates"), True
DoEvents
fPath.CreateFolder (App.Path & "\Templates")
DoEvents
If Not fPath.FolderExists(App.Path & "\Templates") Then
     MsgBox "Impossible de créer le répertoire " & App.Path & "\Templates", vbExclamation
Else  ' donc Templates existe
     fPath.CreateFolder (App.Path & "\Templates\" & Rootitem.Name) ' ==> erreur 76

10 réponses

vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
19 oct. 2020 à 06:53
Bonjour
1) je factoriserais la variable Repertoire : cela évite de "recalculer" à chaque fois
App.Path & "\Templates"


Dim fPath As New FileSystemObject
Dim Repertoire as String = App.Path & "\Templates"
If fPath.FolderExists(Repertoire) Then fPath.DeleteFolder (Repertoire), True
DoEvents
fPath.CreateFolder (Repertoire)
DoEvents
If Not fPath.FolderExists(Repertoire) Then
     MsgBox "Impossible de créer le répertoire " & Repertoire, vbExclamation
Else  ' donc Templates existe
     fPath.CreateFolder (Repertoire & Rootitem.Name) ' ==> erreur 76


2) Que vaux
App.Path
dans ce cas précis ?
0
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 2
Modifié le 19 oct. 2020 à 09:58
Bonjour,
App.Path = "C:\Users\Benji\Desktop\logiciel\log-aqua-lumiere" càd un sous-sous-répertoire sur le bureau !
Il n'empêche que le code revient à
If fPath.FolderExists(Repertoire) Then fPath.CreateFolder (Repertoire & Rootitem.Name)

et donne une erreur 76
un peu comme si
if x > 0 then y = 1/x
donnait "division par zéro" : à quoi se fier ?
0
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 2
28 oct. 2020 à 18:39
Entretemps j'ai lu qu'il valait mieux utiliser le répertoire prévu par Windows pour les applications à savoir
C:\Users\UserName\AppData\Roaming
.
J'ai donc modifié mon code en conséquence mais j'ai quand même une erreur 76 !
App.Path = C:\Users\Viaco\AppData\Roaming
If fPath.FolderExists(App.Path & "\Templates") Then fPath.DeleteFolder (App.Path & "\Templates"), True
DoEvents
fPath.CreateFolder (App.Path & "\Templates")
DoEvents
If Not fPath.FolderExists(App.Path & "\Templates") Then
MsgBox "Impossible de créer le répertoire " & App.Path & "\Templates", vbExclamation
Else
fPath.CreateFolder (App.Path & "\Templates\Aquanest") ' ==> Erreur : 76 : Path not found
0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
28 oct. 2020 à 19:40
Bonjour
Pour avoir le répertoire utilisateur en VB6 :
Dim sPathUser as String
sPathUser = Environ$("USERPROFILE") & "\mes documents\"
MsgBox sPathUser

App.Path est le répertoire contenant l'exécutable de l'application
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 2
29 oct. 2020 à 15:54
Bonjour,
J'ai toujours mis les fichiers de l'application dans le même répertoire que l'exécutable qui est dans App.Path = C:\Users\UserID\AppData\Roaming.

Je ne comprends toujours pas pourquoi
je n'ai pas d'erreur en y créant un répertoire
qu'après l'avoir créé si j'en crois .FolderExists ce répertoire existe bien
mais que j'obtiens "path not found" quand j'essaye de créer un sous-répertoire
et ce de façon exceptionnelle, la plupart du temps ça fonctionne.
0
vb95 Messages postés 3472 Date d'inscription samedi 11 janvier 2014 Statut Contributeur Dernière intervention 13 avril 2024 169
29 oct. 2020 à 16:15
bonjour
C'est vrai que c'est bien étrange .
Et de plus VB6 est loin pour moi ( je suis passé à VB Net il y a facilement 10 ans )
Désolé !
0
JeuDuTaquin Messages postés 249 Date d'inscription mardi 4 juillet 2017 Statut Membre Dernière intervention 31 mai 2023 7
Modifié le 31 oct. 2020 à 10:28
Salut Hervé,

Tout comme Vb95, j'avoue ne pas avoir de réponses...

Mais, "C:\Users\UserName\AppData\Roaming" n'est utilisé que dans le répertoire "Programme files" et applications installées à cet endroit.

Dernièrement, Avast m'a planté une appli recompilée, avec un accès disque sur le bureau.

Généralement, à la première utilisation, il se lance, et est scanné, puis redémarre.

Mais, là, à la première sauvegarde ... plantage et fenêtre d'alarme : " Ce programme est sur le point d'accéder à votre disque dur... permission?" (Erreur 76, comme toi!)

Si l'utilisateur répond "Non", l'application restera boquée en écriture, avec un "Oui"... tout fonctionnera bien!
Mais, avec un mode silencieux ou une erreur de réponse, il faudra réinstaller le programme...


Bon, cinq minute de travail de perdu... mais, cet arrêt non voulu du programme par l'anti-virus peut planter de manière impromptue une application.
Bilan, il faut effectuer un enregistrement de test au démarrage pour passer ce premier test et demander de redémarrer...

Avast nous a déjà habitué à vampiriser nos programmes "C" lors du premier chargement pour l'envoyer "au centre de vérification..." ... mais j'avoue que ces pratiques sont des "vols" de fichiers, ne sachant pas où vont nos programmes, et s'ils sont conservés sur leurs serveurs.

Pour ma part, je suis amené à pointer une faille sécuritaire d'Avast, qui upload sans autorisation nos nouveaux fichiers, mais bon...

Pour l'analyse VB, cela ne pose pas de problèmes... mais comme je l'ai décrit, cela peut poser des problèmes à la première écriture disque.

Dans tous les cas, lors du débogage/recompilation de tests et construction de projets, il faut choisir un répertoire hors "structures Windows protégées", et créer sont projet sous la racine "c:\monprojet" pour éviter les intrusions des anti-virus, trop gênantes lors des premiers tests... Puis, prévoir un message utilisateur au démarrage pour éviter de se faire planter lors d'une sauvegarde de données... car l'anti-virus ne mets pas en attente l'appli... mais la plante lamentablement.

Pour les anciennes applis, ça posera problème, pour les nouvelles... il faudra prendre en compte ces désagréments.
0
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 2
3 nov. 2020 à 15:17
Bonjour,
tu dis "créer sont projet sous la racine "c:\monprojet""
Dans cette autre discussion https://codes-sources.commentcamarche.net/forum/affich-10101769-kill-erreur-70-permission-denied
erreur 70 alors que le projet étant dans C:\répertoire dédié
VB95 m'a conseillé de le mettre dans Environ$("APPDATA")
là tu me proposes le contraire !
0
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 2
11 nov. 2020 à 18:48
Bonsoir,
J'ai aussi le contraire
      Dim fPath As New FileSystemObject
If Not fPath.FolderExists(App.Path & "\Stats") Then fPath.CreateFolder (App.Path & "\Stats")    ' Create Statistics folder

==> Erreur : 58 : File already exists
0
Herve_be Messages postés 1017 Date d'inscription mercredi 4 août 2010 Statut Membre Dernière intervention 25 avril 2024 2
Modifié le 21 janv. 2021 à 11:20
Nouveau cas
      Dim fPath As New FileSystemObject
If Not fPath.FolderExists(App.Path & "\Stats") Then fPath.CreateFolder (App.Path & "\Stats")    ' Create Statistics folder
AppPath = C:\Program Files (x86)\RV Reef Tools

Erreur 58:Ce fichier existe déjà
Je ne comprends toujours pas comment un fichier qui n'existe pas peut exister.
0
Rejoignez-nous