2014-02-09 110 views
0

我知道有很多類似於此的主題,但在查看幾十個結果後,我一直無法找到解決方案。Visual Studio 2012 - 訪問不同目錄中的文件

我有一個項目「富」,我的控制器是在「Foo \ Controllers \ Bar.cs,並在該C#文件中,我想從文件中讀取,位於」Foo \ Data \ Stuff.txt 「這很簡單,但我沒有嘗試過,主要是因爲像Directory.GetCurrentDirectory()和所有類似的內置函數引用執行目錄(在我的情況下,」C:\ Program Files(x86)\ IIS Express「)。

我是什麼做錯了嗎?或者,如果我錯過了一個相同的問題,請大家告訴我有,這似乎小的問題已經花了這麼多時間,謝謝!

+1

嘗試使用['MapPath'](http://msdn.microsoft.com/en-us/library/system.web.httpserverutility.mappath(v = vs .110).aspx) – dkozl

+0

這絕對是最簡單的,謝謝! – Befall

回答

1

隨着命令使用Server.Mappath(「富\ DATA \ Stuff.txt」 )你會發現存儲文件的物理路徑

+0

使用dkozl的鏈接,但它是工作的MapPath,謝謝! – Befall

0

這聽起來像你可能會尋找爲System.Reflection.Assembly.GetExecutingAssembly().CodeBase,它可以讓你找到exac tly你運行的.exe所在的位置;不管你是否在調試器中。

下面是一個使用「基本代碼」尋找路徑的例子,然後讀取從.exe Windows版本信息:

// GetWindowsVersion: Fetch Winver info from specified file 
public static string GetWindowsFileVersion() 
{ 
    String codeBaseUri = 
     System.Reflection.Assembly.GetExecutingAssembly().CodeBase; 
    String codeBase = 
     new Uri(codeBaseUri).LocalPath; 
    System.Diagnostics.FileVersionInfo info = FileVersionInfo.GetVersionInfo(codeBase); 
    return info.FileVersion.ToString(); 
}