2012-10-04 107 views
0

我有幻燈片顯示,讓我的本地文件夾中的圖像顯示在我的Site.Master頁面中。Server.MapPath無法在ASP.net中找到路徑的一部分MVC

所以我用:

FileInfo[] files = new DirectoryInfo(Server.MapPath("~" + "/path/blahblah/")).GetFiles(); 

當我運行在本地的項目,它工作正常的我,但現在我改變了我的項目拋出端口http://195.155.10.521:8081,然後它有一個錯誤Could not find a part of the path 'D:\path\blahblah\'

感謝任何人可以給我幫助!

+3

首先,我沒有三個邏輯步驟卡在一行代碼中。這只是乞求麻煩。 1)使用MapPath返回一個字符串。 2)使用該字符串創建一個Directory對象。 3)在對象上調用GetFiles。至少你會知道哪一步有問題。 –

+0

你使用的是什麼版本的mvc? –

+0

@SteveWellens你說的方法在調試的時候很好,但是這樣你最終會創建更多的臨時變量,並且它們會使代碼變得混亂(我有時會覺得)。 – VJAI

回答

0

該網站託管的端口號對於Server.MapPath方法無關緊要。因此,嘗試以分割方法調用更容易找出問題:

var path = Server.MapPath("~/path/blahblah/"); 
var di = new DirectoryInfo(path); 
var files = di.GetFiles(); 

如果您收到錯誤消息是Could not find a part of the path 'D:\path\blahblah\'那麼這可能意味着,D:\path\blahblah\文件夾不能在你的服務器上。

+0

除了不必要使用變種.....完美! –

+1

你爲什麼認爲他們沒有必要?對我來說''var'關鍵字是C#最偉大的事情之一,特別是在這樣的代碼示例中,它明顯表明了類型。 –

+0

這是不必要的,因爲你不需要它們。我在這裏發表了博文:http://weblogs.asp.net/stevewellens/archive/2009/11/19/can-the-c-var-keyword-be-misused.aspx絕大多數評論都贊同意見。並且,從這個鏈接:http://msdn.microsoft.com/en-us/library/bb384061.aspx「然而,使用var確實至少有可能使您的代碼更難以被其他開發人員理解。因此,C#文檔通常只在需要時才使用var。「 –

相關問題