我有一個asp.net mvc項目,它在單獨的庫中使用了一些搜索方法。 這個庫需要知道我的lucene索引文件的位置。在web項目中使用的庫中獲取正確的絕對路徑
private static string lucenePath = ConfigurationManager.AppSettings["lucenePath"];
public static ColorList SearchColors(Query query) {
return new ColorList(
new IndexSearcher(Path.GetFullPath(lucenePath)),
query);
}
這從web.config的應用程序鍵節點正確讀取我配置的lucenePath。 但是,我怎樣才能從這個相對路徑得到正確的完整路徑? Path.GetFullPath給了我一個完全不正確的路徑。
--Conclusion--
如果你想要去全了,tvanfosson的答案可能是你。
但是,我保留了它多了幾分腦死亡的使用以下:
Path.Combine(AppDomain.CurrentDomain.BaseDirectory,
ConfigurationManager.AppSettings["luceneIndex"].TrimStart('\\'));
這看起來在調用者的app.config爲所謂的「路徑」的的AppKey並將其值結合起來,來電者的路徑。 TrimStart()確保配置文件都可以包含前導\或不包含。
該庫應該可以從網站中使用,也可以從任何其他應用程序中使用。它應該只是採用當前運行路徑,應用相對路徑並返回結果。 – 2009-03-02 13:07:22
嗯..也許東西從http://stackoverflow.com/questions/362790/what-is-the-best-way-to-determine-application-root-directory將幫助 – abatishchev 2009-03-02 13:14:06