2008-11-17 13 views

Répondre

28

résultats de Application.Current dans un appdomain http://msdn.microsoft.com/en-us/library/system.appdomain_members.aspx

Aussi cela devrait vous donner l'emplacement de l'ensemble

AppDomain.CurrentDomain.BaseDirectory 

Je me souviens il existe plusieurs façons d'obtenir l'emplacement de l'application. mais celui-ci a fonctionné pour moi dans le atleast du passé (il a été un certain temps depuis que je l'ai fait la programmation WinForms: /)

+2

Il doit être Application.CurrentDomain. – Max

+1

Cela ne semble pas fonctionner dans .NET 4.0, mais Application.UserAppDataPath a fonctionné. – criticalfix

+1

AppDomain.CurrentDomain.BaseDirectory –

55

Dans VB.NET

Dim directory as String = My.Application.Info.DirectoryPath 

En C#

string directory = AppDomain.CurrentDomain.BaseDirectory; 
+3

L'emplacement C# fonctionnera également dans VB ou autre langue es qui ne supportent pas le nom "My". –

+0

@Tomas Pajonk, puis-je suggérer de changer la variable C# "FileName" en "répertoire"? – grenade

+0

@grenade terminée. Merci. –

12

Cela pourrait aider;

Path.GetDirectoryName(Application.ExecutablePath); 

aussi voici les reference

0
string apppath = 
    (new System.IO.FileInfo 
    (System.Reflection.Assembly.GetExecutingAssembly().CodeBase)).DirectoryName; 
+0

Désolé, l'espace de noms Assembly et le panneau d'affichage du code ne sont pas très lisibles ensemble. Je déteste les barres de défilement. – MusiGenesis

9

System.Windows.Forms.Application.StartupPath va résoudre votre problème, je pense que

1

Check this out

'as in import statement you have to mention the Imports System.IO & import System.Management 
Imports System.IO 
Imports System.Management 
Public Class Form1 


    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click 
     TextBox1.Text = Path.GetFullPath(Application.ExecutablePath) 
     Process.Start(TextBox1.Text) 

    End Sub 
End Class 
2

Les deux exemples sont dans VB.NET.

chemin de débogage:

TextBox1.Text = My.Application.Info.DirectoryPath 

chemin EXE:

TextBox2.Text = IO.Path.GetFullPath(Application.ExecutablePath) 
0

Private Sub Main_Shown (expéditeur comme objet, e comme EventArgs) Poignées Me.Shown

Dim args() As String = Environment.GetCommandLineArgs() 
    If args.Length > 0 Then 
     TextBox1.Text = Path.GetFullPath(Application.ExecutablePath) 
     Process.Start(TextBox1.Text) 
    End If 
End Sub