Chemin de fichier introuvable ?

Signaler
Messages postés
344
Date d'inscription
mercredi 24 janvier 2007
Statut
Membre
Dernière intervention
27 octobre 2008
-
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
-
Bonjour à tous
J'ai un petit probleme pas du tout evident à expliquer, mais je vais essayer de faire de mon mieux:

J'ai un dossier A pouvant être placé n'importe où sur l'ordinateur d'un utilisateur (C'est lui qui le met où il veut, MesDocuments, Bureau...) Ce dossier A contient deux dossiers: un B et un C. Le dossier B contient l'executable de mon programme, et le dossier C renferme un document ".rtf". Et j'aurais besoin de connaitre le chemin du fichier ".rtf" pour pouvoir l'ouvrir. Pour que ce soit encore plus facile, je ne connais ni le nom de B, ni celui de C !!!
Est-ce possible ?
Merci d'avance.

16 réponses

Messages postés
96
Date d'inscription
samedi 21 octobre 2006
Statut
Membre
Dernière intervention
25 avril 2009

Tu programmes en VB6 ou en VB.net ?
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
55
Salut,
L'executable connait son chemin avec App.Path (en VB6) et Application.ExecutablePath (si je me souvient bien en .NET, les pros me corrigeront surement)

Tu peux donc facilement déduire le nom de B de A de C et leur emplacement sur le disque.

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
344
Date d'inscription
mercredi 24 janvier 2007
Statut
Membre
Dernière intervention
27 octobre 2008

Salut.
Oui, j'utilise cette methode pour connaitre le nom de B, mais celui de C ? ce n'est pas possible ! Il ne renferme aucun executable ! Et n'a rien en commun avec B mis à part A, dont je connais le nom.

PS: Arnal88, regarde le nom du formu sur lequel j'ai posté... Je suis en VB 2005
Messages postés
797
Date d'inscription
mardi 7 juin 2005
Statut
Membre
Dernière intervention
23 février 2011
5
Et bien, avec App.path, tu as le chemin de ton exécutable du type :
CheminAppli = "C:\Toto\A"
Ce chemin est une chaine de caractères, tu récupères tout ce qui est à gauche du dernier "" (tu as le choix pour ce faire : Split, InStr, InStrRev, Left, Len, etc ...)
Tu obtiens dans le chemin de tes 2 répertoires : CheminRécupéré  = "C:\toto"
Te reste plus qu'à ajouter le nom de ton répertoire B (puisque tu l'installes, je suppose qu'il aura toujours le même nom défini) :
CheminFichierRTF = CheminRécupéré & "\B" et le toujours est joué

Molenn
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
5
Salut,

Molenn : Il est en vb.net ce n'est donc pas app.path mais :
Application.StartupPath
pour récupérer le chemin de l'exécutable
.
Application.ExecutablePath récupère le chemin de l'exécutable suivi du nom de l'exe.
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
55
Re,
Si il n'y a que B et C dans A et que avec les idées sitées tu retires A et B, en faisant un Dir de A tu récupère C.

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
344
Date d'inscription
mercredi 24 janvier 2007
Statut
Membre
Dernière intervention
27 octobre 2008

Re,
Molenn: Je ne connais pas le nom de B.
Jrivet: Je n'ai pas bien compris ce que tu me propose.
Messages postés
7393
Date d'inscription
mercredi 23 avril 2003
Statut
Membre
Dernière intervention
6 avril 2012
55
Question: Est ce que SEULS B et C sont dans A (entends par la qu'il n' ya que deux répertoires compris dans A)

@+: Ju£i?n
Pensez: Réponse acceptée
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
5
Re marneus,

avec Application.StartupPath tu connais facilement le nom de ton répertoire B.
Ensuite tu récupère la chaine de caractère qui se trouve à gauche de ton dernier "" et tu récupères comme ça le nom de ton répertoire A.
Si dans ton répertoire A il n'y a que les dossier B et C, il suffit de faire un dir sur ton répertoire A, tu récupèreras les 2 dossiers B et C.
Tu connais deja le nom de B que tu auras sauvegardé dans une variable, tu compares donc le nom des répertoires récupérés et tu en déduis C.
Messages postés
344
Date d'inscription
mercredi 24 janvier 2007
Statut
Membre
Dernière intervention
27 octobre 2008

Re,
Ok merci bien, j'aime bien votre solution. Mais je ne savais pas que l'on pouvait faire une sorte de soustraction de chaines de caractere !
En fait pour vous aider je vais vous donner l'architecture des dossiers dans A, pour une pièce donnée: le fichier B s'appellera "Systeme[Piece 1]" et C: "Ressources[Piece 1]". Il n'y a donc que le nom entre crochets qui varie, mais ça m'enbete de tous les connaitres car il y a plus de 150 pieces ! Et je n'ai pas envie de faire 150 programmes, je voudrais un truc standard.
PS: Piece signifie piece "Solidworks", mon programme sert d'interface simplifiée pour visionner les pieces, les mises en plan, la nomenclature pour que l'utilisateur d'un clique trouve ce qu'il veut.
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
10
Salut, mais B et C sont des fichiers ou des répertoires?

 Drikce 06 (Nouveau !!! Forum Exclusivement Office Et VBA By Mortalino)
Messages postés
344
Date d'inscription
mercredi 24 janvier 2007
Statut
Membre
Dernière intervention
27 octobre 2008

Pardon !
Dans ma derniere explication, j'ai fait une erreure: A, B et C sont des repertoires!
Messages postés
2237
Date d'inscription
lundi 29 mai 2006
Statut
Membre
Dernière intervention
29 mai 2008
10
Et que click l'utilisateur pour avoir ce qu'il veut?

 Drikce 06 (Nouveau !!! Forum Exclusivement Office Et VBA By Mortalino)
Messages postés
344
Date d'inscription
mercredi 24 janvier 2007
Statut
Membre
Dernière intervention
27 octobre 2008

L'utilisateur peut avoir acces au repertoire contenant les pieces pour les voires ou les modifier (Qui est C) en cliquant sur un bouton
Messages postés
12
Date d'inscription
dimanche 16 mars 2003
Statut
Membre
Dernière intervention
29 juillet 2010

Bonjour,

J'ai le même problème que Marneus73 à savoir que j'ai un programme qui peut etre installé n'importe où. J'ai crée un code en vbs qui se trouve dans le répertoire du programme. Et ma question est de savoir comment trouver le chemin du .vbs en code? Autrement dit, existe-t-il un équivalent au app.path de vb6 mais en vbs ?

Merci beaucoup
Messages postés
1241
Date d'inscription
mardi 10 octobre 2006
Statut
Membre
Dernière intervention
27 août 2013
5
Bonjour,

En vbs tu peux faire comme ceci:

dim var1, var2,chemin

var1 = WScript.ScriptFullName
var2 = WScript.ScriptName

chemin = left(var1,len(var1) - len(var2))

MsgBox chemin


L'expérience, c'est une connerie par jour, mais jamais la même..