2010-06-08 11 views
2

J'ai un répertoire nommé reports dans mon projet winform dans .net. Mon nom de projet est AccountingReports et à l'intérieur de ce rapport d'annuaire existe. J'ai donc besoin de la façon d'accéder à ce chemin via le code. Dans Asp.net, nous utilisons la propriété Request.PhysicalApplicationPath. Donc, il y a une méthode ou une propriété existe qui va me donner la racine de mon projetComment obtenir le chemin de l'annuaire dans mon projet d'application WinForm?

Répondre

8

Vous pouvez utiliser:

Directory.GetCurrentDirectory

Obtient le répertoire de travail actuel de l'application.

Vous pouvez ensuite ajouter "Rapports" à qu'utiliser les éléments suivants:

Path.Combine(string, string):

Dim reportsFolder As String 
reportsFolder = Path.Combine(Directory.GetCurrentDirectory(), "Reports") 
+0

qui me donnait encore \ bin \ debug [répertoire de travail actuel de l'exécutable], donc j'ai besoin de mettre les rapports dans le répertoire de débogage pour tester mon application ... et plus loin l'emplacement installé sera AppInstallDir/Reports/pour faire ça marche ... ai-je raison? aucune autre approche ne vient à l'esprit .. –

+0

@Amit - oui, sauf si vous mettez l'emplacement dans le répertoire app.config et le lisez à partir de là. – ChrisF

+0

Ensuite, dans ce cas, après le déploiement, l'utilisateur doit mettre à jour le fichier app.config à chaque fois qu'il déplace le répertoire Reports. –

1

Lors de l'exécution dans le rapport IDE INSTALLÉ Je l'ai utilisé:

Si System.Deployment.Application.ApplicationDeployment.IsNetworkDeployed - true si installé, false IDE

installé - System.Deployment.Application.ApplicationDeployment.CurrentDeployment.DataDirectory

IDE - My.Application.Info.DirectoryPath

+0

toujours le même My.Application.Info.DirectoryPath = \ bin \ debug –

+0

de toute façon j'ai besoin de faire un peu d'analyse sur la chaîne ou copiez-la coller dans un répertoire exécutable .. toujours merci pour un soutien aimable .. –

+0

Il est toujours amusant d'obtenir downvotes sur un post de six ans sans explication ... – dbasnett

5
Dim path As String = AppDomain.CurrentDomain.BaseDirectory 
'replace \bin\Debug\ the part of the path you dont want with part you do want 
Dim path1 As String = path.Replace("\bin\Debug\", "\htmlFiles\") 
+0

C'est le seul qui a fonctionné pour moi lors du développement d'un add-in VSTO. Honte à tout le monde de ne pas avoir attrapé ça. – Lopsided

0

bien. Un p'tit peu tard peut-être, mais je viens d'avoir le même problème et résolu comme ceci:

Dim Path As String() = Directory.GetCurrentDirectory.ToString.Split(New Char() {"\"c}) 
    For i = 0 To Path.Count - 3 
     PathLb.Text = PathLb.Text & "\" & Path(i) 
    Next i 
    PathLb.Text = PathLb.Text.Remove(0, 1) 

Avec ce le chemin est contenu sur « PathLb ».

Espérons que c'est utile à tous.