2009-06-03 80 views
0

如何在我的ASP.Net網站中搜索子目錄?ASP.Net搜索子目錄

我知道這是一個普通的Winform項目,我可以很容易地通過以下獲得它:

Environment.CurrentDirectory 

System.IO.Directory.GetCurrentDirectory() 

然後

string[] directories = System.IO.Path.Combine(Environment.CurrentDirectory, "Portfolio") 

如何建立在ASP.Net中稱爲投資組合的子文件夾的路徑?

我遇到了一個問題,建議從http://??????????/Portfolio。我如何找到??????部分?

我想上面的代碼,但得到了一個完全不同的目錄...

我不想去年的子文件夾之前硬編碼的一切,因爲這將是另一臺服務器上的不同。

回答

2

調用Directory.GetCurrentDirectory()從ASP.NET應用程序調用它時可能會產生誤導。解決此問題的最佳方法是使用Server.MapPath(),這將允許您將Web文件夾映射到其在磁盤上的位置。

因此,例如,運行此代碼:

string path = Server.MapPath("~/Portfolio"); 

將設置「path」等於在磁盤上的文件夾的位置。

如果您從Page或控件類的上下文之外運行此代碼,將無法直接訪問Server對象。在這種情況下,你的代碼應該是這樣的:

string path = HttpContext.Current.Server.MapPath("~/Portfolio"); 
0

如果我理解你的權利,你可以使用訪問:

"/portfolio" 

系統將串聯「/組合」的網址,例如如果它是「http://site.com」你會得到「http://site.com/portfolio

如果你想的物理路徑,則可以使用

server.mappath("/portfolio") 

,它將返回關聯的物理目錄(考試ple E:\ websites \ site \ portfolio「)

0

以下行的一片讓你的「bin」目錄

Assembly asm = Assembly.GetExecutingAssembly(); 
String strAppHome = Path.GetDirectoryName(asm.CodeBase).Replace("file:\\", "");