2012-10-30 57 views
6

我有一個Excel文件,其類庫中具有content的構建操作。該庫由ASP.NET WebForms應用程序和控制檯應用程序引用,並且Excel文件由兩者一起使用。有沒有辦法我可以編程獲取這個文件的文件路徑?如何獲取類庫中內容的文件路徑

我知道在ASP中我可以這樣做:

HttpContext.Current.Server.MapPath(@"bin") 

並在控制檯應用程序,我可以這樣做:

Path.GetDirectoryName(System.Reflection.Assembly.GetEntryAssembly().Location) 

這些工作,但我不知道是否有更好的,合併從程序集中找到文件並返回路徑的方法。

回答

1

第二種方法在你應該改變它的所有環境中工作正常,以便它不尋找入口組件但是特定組件。要做到這一點

最簡單方法是:

typeof(Some.Type.From.That.Assembly).Assembly.Location 

另一種方法是使用嵌入的資源,這樣就可以從組件直接加載文件。當然,如果文件必須由用戶寫入,這將不起作用。

+0

嵌入式資源不能很好地工作,因爲我們必須與excel文件(ugh)進行互操作並在磁盤上使用它。我希望避免在'bin'目錄中執行'MapPath'或'Path.Combine'並找到該文件,但可能沒有其他方法... –

+0

您可以隨時將文件從嵌入式資源保存到臨時目錄然後在那裏進行交互。如果多個進程觸及該文件,或者出於某種原因導致excel掛起並且不釋放該文件,它也可以防止問題。 –