Dossier d'une application

Résolu
Zermelo - 9 nov. 2012 à 22:36
 Utilisateur anonyme - 10 nov. 2012 à 11:50
Bonjour à tous.

En VB 2010 Express, je n'ai pas trouvé mieux, pour trouver le chemin d'accès du dossier d'une application, que le code suivant

Public Function DossierApplication() As String
        Dim Dos As String, n As Integer
        Dos Application.StartupPath : n Dos.Length : Dos = Dos.Substring(0, n - 10)
        Return Dos
End Function


que je trouve désagréablement contourné. Quelqu'un pourrait-il me proposer un code plus élégant ?

D'avance merci.


Étant illettré, je signe d'une croix : ×

13 réponses

ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
9 nov. 2012 à 22:50
Bonjour,
Que trouves-tu d'inélégant dans Application.StartupPath ?
Ce que, moi, je trouve par contre laid, c'est ta valeur 10 en dur !!! Au lieu de prendre tout ce qui se trouve avant le dernier ""
Jette par ailleurs un coup d'oeil là :
Tapez le texte de l'url ici.


________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
3
ucfoutu Messages postés 18038 Date d'inscription lundi 7 décembre 2009 Statut Modérateur Dernière intervention 11 avril 2018 211
9 nov. 2012 à 23:30
Quant à ma remarque à propos de laideur de ce que tu as écrit, il me parait de toutes manières utile de t'inviter à t'intéresser à cette lectuire de MSDN :
Tapez le texte de l'url ici.
________________________
Réponse exacte ? => "REPONSE ACCEPTEE" pour faciliter les recherches.
Pas d'aide en ligne installée ? => ne comptez pas sur moi pour simplement vous dire ce qu'elle contient. Je n'interviendrai qu'en cas de nécessité de développ
3
Utilisateur anonyme
10 nov. 2012 à 00:24
Oui en VB.NET il est vivement conseillé de retirer Microsoft.VisualBasic.
Après, moi ce que je comprends pas, c'est pourquoi tu veux retirer "\bin\Debug" ? Le chemin d'accès du "dossier de l'application" dont tu parle est en faite les sources de l'application.
D'ailleurs, une fois que ton application est terminé, elle va dans "\bin\Release".
En plus le "\bin\Debug" peut être changé dans les options de déploiement de ton projet.

_____________
Kenji
3
Utilisateur anonyme
10 nov. 2012 à 02:27
Bonjour,


pour trouver le chemin d'accès du dossier d'une application


Encore faut-il faire attention dans la signification de Application.StartupPath

Dans l'environnement de programmation cela retourne le dossier bin\debug ou bin\release selon la compilation choisie dans les barres d'outils ou dans le "MyProject"

Dans un programme autonome, cela donne le dossier de l'exécutable.

J'ai donc de sérieuses appréhensions en voyant ton code.
3

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

Posez votre question
Utilisateur anonyme
10 nov. 2012 à 09:59
Tes dossiers de données doivent être copiées lors de la compilation dans bin/debug. Voir dans la fenêtre des propriétés de Visual Studio sur ces fichier la propriété "Copy to Output Directory".

_____________
Kenji
3
Utilisateur anonyme
10 nov. 2012 à 11:32
C'est un règle impérative.
Il ne faut pas confondre l'environnement de développement (ou dossier de développement) et livrable final (dossier bin\Release).
Quant tu donne ton application à ton client (qui peut être toi-même), tu ne lui donnes que les exécutable et les ressources liées (ton cas ici). Tu va pas lui donner l'ensemble des codes sources.
De plus Visual Studio met par défaut dans "D:\TonApplication\bin\debug". Mais tu peux très bien changer la configuration de déploiement et le mettre dans un endroit complètement différent et qui n'a rien à voir (ex: "H:\Rep\Tartempion").

_____________
Kenji
3
Bonjour ucfoutu.
Ce n'est pas le Application.StartupPath qui me paraît inélégant, c'est que je doive lui enlever le "\bin\Debug" (10 caractères) par lequel il se termine pour obtenir le chemin d'accès du dossier de l'application. Le moyen qui m'a paru le plus expéditif est d'enlever les 10 derniers caractères, sachant que ce dossier peut être déplacé.

Cordialement.

Étant illettré, je signe d'une croix : ×
0
Nos messages se sont croisés.

En VB.NET, Microsoft.VisualBasic est de plus en plus déconseillé, car il n'est maintenu que pour faciliter la transition à partir de VB6, et sa pérennité n'est pas garantie. D'ailleurs, lorsque j'ai récemment déposé un code, on m'a demandé de supprimer l'import automatique de Microsoft.VisualBasic.


Étant illettré, je signe d'une croix : ×
0
Bonjour.

J'ai probablement commis une erreur de terminologie. Ce que j'entends par "dossier de l'application" est le dossier qui contient les composants (Form, Class, Module, et autres) de ladite application. Car c'est là que je place le ou les dossiers de données. Je viens d'apprendre, par cmarcotte, que Application.StartupPath ne renvoie pas toujours bin\debug. Alors j'appelle à l'aide, pour savoir comment obtenir à coup sûr le dossier de l'application tel que je l'entends.

D'avance merci.


Étant illettré, je signe d'une croix : ×
0
Bonjour Charles Racaud.

Vous dites que mes dossiers de données doivent être copiées lors de la compilation dans bin/debug. Est-ce là une règle d'usage, ou une règle impérative ? Je vous pose la question parce que j'ai déjà réalisé et compilé plusieurs programmes en plaçant mes fichiers de données comme je vous l'ai dit. Donc, si ce n'est qu'une règle d'usage, au demeurant efficace, j'ai bien l'intention de continuer comme devant (je vous autorise à me traiter de tête de mule). Je m'inclinerai si c'est une règle impérative, mais après prise de connaissance des impératifs. D'autant que j'ai en tête (de mule) une idée pour contourner le fait que Application.StartupPath ne renvoie pas toujours la même chose.

Merci à vous tous qui m'avez supporté jusqu'à présent.



Étant illettré, je signe d'une croix : ×
0
Bonjour à tous.

Grâce à cette discussion, j'ai corrigé mes fautes. La fonction
Public Function DossierApplication() As String
        Dim Dos As String, n As Integer
        Dos Application.StartupPath : n Dos.Length : Dos = Dos.Substring(0, n - 10)
        Return Dos
    End Function

est remplacée par
Public Function DossierProjet() As String
        Dim Dos As String
        Dos Application.StartupPath : Dos GetDirectoryName(Dos) : Dos = GetDirectoryName(Dos)
        Return Dos
    End Function

Un grand merci.


Étant illettré, je signe d'une croix : ×
0
Je m'incline donc.

En conséquence, je vous demande comment l'on fait pour
ouvrir la fenêtre de propriétés de Visual Studio

Merci.

Étant illettré, je signe d'une croix : ×
0
Utilisateur anonyme
10 nov. 2012 à 11:50
Sur le/les fichiers sélectionner dans l'explorateur de solution, tu appui sur F4. Ou le bouton "Propriétés" de la petite barre d'outils toujours sur l'explorateur de solution.

_____________
Kenji
0
Rejoignez-nous