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

Messages postés
36
Date d'inscription
jeudi 12 octobre 2006
Dernière intervention
29 mars 2013
- - Dernière réponse : Renfield
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
- 10 janv. 2012 à 07:27
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
Afficher la suite 

Votre réponse

13 réponses

Meilleure réponse
Messages postés
36
Date d'inscription
jeudi 12 octobre 2006
Dernière intervention
29 mars 2013
3
Merci
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

Dire « Merci » 3

Quelques mots de remerciements seront grandement appréciés. Ajouter un commentaire

Codes Sources a aidé 104 internautes ce mois-ci

Commenter la réponse de cs_vinok
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
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
Commenter la réponse de Renfield
Messages postés
36
Date d'inscription
jeudi 12 octobre 2006
Dernière intervention
29 mars 2013
0
Merci
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
Commenter la réponse de cs_vinok
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
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
Commenter la réponse de Renfield
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
regarde les détails de l'exception qui a été levée


Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Commenter la réponse de Renfield
Messages postés
36
Date d'inscription
jeudi 12 octobre 2006
Dernière intervention
29 mars 2013
0
Merci
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
Commenter la réponse de cs_vinok
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
et ca coince sur la ligne .WaitForExit () ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Commenter la réponse de Renfield
Messages postés
36
Date d'inscription
jeudi 12 octobre 2006
Dernière intervention
29 mars 2013
0
Merci
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
Commenter la réponse de cs_vinok
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
que donne ton string.Format(arg) ?

Renfield - Admin CodeS-SourceS - MVP Visual Basic & Spécialiste des RegExp
Commenter la réponse de Renfield
Messages postés
36
Date d'inscription
jeudi 12 octobre 2006
Dernière intervention
29 mars 2013
0
Merci
boutique1


ViNoK
Commenter la réponse de cs_vinok
Messages postés
36
Date d'inscription
jeudi 12 octobre 2006
Dernière intervention
29 mars 2013
0
Merci
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
Commenter la réponse de cs_vinok
Messages postés
36
Date d'inscription
jeudi 12 octobre 2006
Dernière intervention
29 mars 2013
0
Merci
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
Commenter la réponse de cs_vinok
Messages postés
17308
Date d'inscription
mercredi 2 janvier 2002
Dernière intervention
22 août 2018
0
Merci
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
Commenter la réponse de Renfield

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.