2009-10-19 83 views
3

獲得應用程序的根我目前正在使用:如何獲取/設置winforms應用程序的工作目錄?

Path.GetDirectoryName(Assembly.GetExecutingAssembly().GetName().CodeBase).Substring(6) 

但是那種感覺馬虎給我。有沒有更好的方式來獲取應用程序的根目錄並將其設置爲工作目錄?

回答

6

所以,你可以只使用Envrionment.CurrentDirectory =(sum目錄)更改目錄。有很多方法可以獲得原始執行的directoy,一種方式實質上就是您所描述的方式,而另一種方式是通過Directory.GetCurrentDirectory()(如果您沒有更改目錄)。

using System; 
using System.IO; 

class Test 
{ 
    public static void Main() 
    { 
     try 
     { 
      // Get the current directory. 
      string path = Directory.GetCurrentDirectory(); 
      string target = @"c:\temp"; 
      Console.WriteLine("The current directory is {0}", path); 
      if (!Directory.Exists(target)) 
      { 
       Directory.CreateDirectory(target); 
      } 

      // Change the current directory. 
      Environment.CurrentDirectory = (target); 
      if (path.Equals(Directory.GetCurrentDirectory())) 
      { 
       Console.WriteLine("You are in the temp directory."); 
      } 
      else 
      { 
       Console.WriteLine("You are not in the temp directory."); 
      } 
     } 
     catch (Exception e) 
     { 
      Console.WriteLine("The process failed: {0}", e.ToString()); 
     } 
    } 

ref

5

你想要什麼;工作目錄或程序集所在的目錄?

對於當前目錄,您可以使用Environment.CurrentDirectory。對於該組件所在的目錄,你可以使用這個:

Path.GetDirectoryName(Assembly.GetExecutingAssembly().Location) 
相關問題