當我建立我的.net網站時,我使用 Directory.GetFiles(@「D:\ project \ images」)檢索文件路徑;在我的.net網站中使用Directory.GetFiles
但是,當我部署在互聯網服務器上,我不得不改變這個文件夾的鏈接,你能幫我我怎麼辦?我可以在Directory.GetFiles()中使用相對鏈接嗎?
當我建立我的.net網站時,我使用 Directory.GetFiles(@「D:\ project \ images」)檢索文件路徑;在我的.net網站中使用Directory.GetFiles
但是,當我部署在互聯網服務器上,我不得不改變這個文件夾的鏈接,你能幫我我怎麼辦?我可以在Directory.GetFiles()中使用相對鏈接嗎?
有類似:
<configuration>
<appSettings>
<add key="ImagesFolder" value="\Images" />
</appSettings>
</configuration>
然後在ASP.NET C#代碼後面你可以使用:
var ImagesFolder = ConfigurationManager.AppSettings["ImagesFolder"];
var files = Directory.GetFiles(Server.MapPath(ImagesFolder));
記住,你需要添加到參考System.Configuration
程序集,否則您將無法添加使用語句並訪問ConfigurationManager
。
這樣就沒有硬編碼值,您可以通過編輯Web服務器上已部署的文件夾中的web.config文件來爲該appsetting編寫所需的值。
正確的方法是使用Server.MapPath 將Web應用中的虛擬路徑映射到服務器中的物理路徑。
將路徑放入您的web.config。無論如何,你不應該硬編碼路徑。如果它在未來發生變化會怎樣?
在你的設置中添加:
<appSettings>
<add key="myPath" value="D:\project\images"/>
</appSettings>
...,然後從應用程序中調用它:
var myPath = WebConfigurationManager.AppSettings["myPath"];
如果你真的要發瘋,看看web.config transformations這樣,當你發佈,您的發佈配置將被轉換並應用於您!
在web.config它不檢索任何路徑,mypath仍然是空的刺痛,爲什麼? – Alaa
@Alaa沒有更多。你確定你使用的是正確的鍵名嗎? –
如果您的密鑰名稱不正確,則不會引發錯誤 - 只返回null。 –
看看'Server.MapPath()'。 [文檔](http://msdn.microsoft.com/en-us/library/ms524632(v = vs.90).aspx) –
這通常是您要暴露給配置文件的東西。 (web.config)查看如何使用'System.Configuration.ConfigurationManager'。 –
是的,如果它是你的項目的一部分,使用邁克的建議,如果它在外面使用傑里米的。 – PSL