Comment accéder à un fichier du répertoire projet ? [Résolu]

Signaler
Messages postés
36
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
29 mars 2013
-
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
-
Bonjour,

Je dois lancer un batch depuis mon application C#.
Ce fichier se trouve dans un répertoire du projet.
Ma question est: comment accéder à ce fichier (chemin relatif)

Capture d'écran:

Merci


ViNoK

13 réponses

Messages postés
36
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
29 mars 2013

Yes c'est bon je pointe sur le bon dossier en mettant:
string targetDir = Path.GetFullPath(Path.Combine(Application.StartupPath, @"..\..")+@"\remontee-ventes");
Le batch continue à me mettre fichier introuvable malgré tout..
Comment je peux faire pour savoir sur quoi il tape?
Voici un screenshot:


ViNoK
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
Tu peux Copier/coller le code, pas forcément des images, tu sais....

Application.StartupPath

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
36
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
29 mars 2013

Renfield,
Merci pour ta réponse.
J'ai remplacé UserAppDataPath par Startup path.
Au débuggage il me met dans le répertoire bin, (normal puisque le .exe est dans bin)
or le dossier que je veux atteindre est à la racine de la solution,
donc il faut que j'obtiennne juste le chemin de la solution.

D'autres parts, j'ai testé un chemin absolu, et au débug il trouve bien le fichier .bat.
Par contre lorsque je lance le batch (ligne proc.start() sur l'image), le prog va direct dans le catch et me sort "fichier introuvable"...
Je ne comprend pas ! :\


ViNoK
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
UserAppDataPath se trouve dans les LocalSettings de ton User (rien a voir, donc)

Tu peux jouer avec ..\.. :

Path.GetFullPath(Path.Combine(Application.StartupPath, @"..\.."))


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
regarde les détails de l'exception qui a été levée


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
36
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
29 mars 2013

Message "L'exécution du processus doit être terminée pour que les informations demandées puissent être déterminées.
ça ne me parle pas du tout...
je cherche sur le net pr voir..
ViNoK
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
et ca coince sur la ligne .WaitForExit () ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
36
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
29 mars 2013

Bon ça avance !
Non ça ne bloque pas dessus, j'avais juste mis un point d'arret dessus avant que le prompt s'affiche.
Donc !
Jai lancé mon .bat en direct sur cmd et il me met le meme résultat !
Donc il le trouve bien !
Ce sont les arguments qui ne passent pas !
dans la chaine arg je passe tous les arguments séapré d'un espace.
A l'execution normale, on doit avoir:
> remonter-les ventes boutique1 boutique3 boutique5 qual
Là je regarde comment vérifier que les arguments passent bien.




ViNoK
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
que donne ton string.Format(arg) ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Messages postés
36
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
29 mars 2013

boutique1


ViNoK
Messages postés
36
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
29 mars 2013

C'est bon j'avais loupé un autre argument !
Merci beaucoup pour ton aide, je crois q c bon je v testé en environnement de qual ! :)


ViNoK
Messages postés
36
Date d'inscription
jeudi 12 octobre 2006
Statut
Membre
Dernière intervention
29 mars 2013

Bon, j'ai vendu la peau de l'ours trop vite !
Donc sur ma machine de test c'est bon ça passe.
Par contre, dès que je la publie et que je l'installe via setup sur la vraie machine destinée à recevoir l'appli,
là c'est la merde.

Je m'explique:
Les chemins sont différents malgré le fait que j'utilise un chemin relatif (Application.StartupPath..)
En effet, lors de l'installation, le setup créée des dossiers partout (notamment dans le C\D&S\nom_user\Local Settings\Apps\2.0\AOKQ52KC.QRH\...)
DOnc au final je me rends compte que les fichiers dont j'ai besoin ne sont même pas là !

En résumé:
1) les fichiers que j'ai ajouté dans le panneau de droite de VS2010 (Explorateur de solution) ne sont pas tous présent après publication.
2) le path que j'avais défini risque de ne pas être bon puisqu'il publie des fichiers n'importe où...

Je continue à chercher...


ViNoK
Messages postés
17286
Date d'inscription
mercredi 2 janvier 2002
Statut
Modérateur
Dernière intervention
23 décembre 2019
68
Pourquoi ne pas simplement mettre le .bat avec le .exe ?

pourquoi recourir a un .bat ? pourquoi ne pas effectuer ses taches dans ton code C# ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp