2016-01-04 39 views
2

我是新的mvc和c#,我無法解決以下問題:如何在mvc解決方案目錄中創建文件夾,使其包含在項目中?

我試圖在解決方案文件夾中創建一個名爲「Items」的文件夾。 我已經tryed使用CreateDirectory方法:

Directory.CreateDirectory("~/Images"); 

但它並沒有爲我工作 - 文件夾沒有被創建..

天色工作解決方案是創建一個文件夾:

Directory.CreateDirectory(Server.MapPath("~/Images")); 
  • 「郵件」文件夾中創建的,但它不包含在解決方案:

enter image description here

如何在解決方案目錄中創建文件夾以便它包含在項目中?

(我需要通過代碼不是由手工完成)

+0

出於興趣,爲什麼你想這樣做嗎? –

+4

您的解決方案文件只是包含在其中的文件的結構化容器。運行時創建的任何文件夾都不知道您的解決方案,因此無法將其作爲解決方案的一部分。 – jvanrhyn

+0

Thx快速回復。我需要文件夾來存儲上傳的圖像。你能提供一些好的方法來做到這一點嗎? thx – fxdx

回答

2

一個部署在Web服務器上的Web應用程序沒有Visual Studio解決方案或項目的任何概念。因此,Directory.CreateDirectory(Server.MapPath("~/Images"))是在運行時在Web應用程序中創建文件夾的正確方法,但我們不能將其納入解決方案中,因爲這在預編譯的Web應用程序中很難理解。如果您在本地開發機器上創建目錄,則始終可以手動將該文件夾包含到相應的.csproj文件中,但在運行時不會有任何區別。

3

你需要了解什麼solutioncsproj文件用於

一般情況下,他們正在設計並用於開發的Visual Studio,一旦該項目是編譯,所有這些文件將被忽略並從部署包中排除

Directory.CreateDirectory(Server.MapPath("~/Images")); 

上面的代碼只是創建目錄(如果尚未存在的話) yment包運行時,所以你不會在你的解決方案中看到它,除非你在本地運行項目(調試/發佈模式,這裏沒關係)。但是,一切將正常運行在託管環境(例如:IIS)。

爲了您的信息,這裏是一個什麼樣solutioncsproj是短暫

  • solution(的.sln)文件:包含的信息來管理一個或多個個別項目,包括構建環境(爲每個項目),啓動模式(當你想在一次運行中啓動多個項目時很有用),項目依賴性等等。請注意,VS還會讀取suo文件(解決方案用戶選項),該文件用於定義用戶自定義首選項(不應包含。娑文件版本控制,因爲它是自定義設置

  • csproj文件:定義項目的結構,命名空間是什麼,什麼是靜態的文件夾,嵌入的資源,引用,包等

最後,如果您創建文件夾手動,VS將自動包括該文件夾到deployment packagecsproj,而是取決於文件類型,您可能需要更改Build ActionCopy To Output Directory在文件屬性。

希望它有幫助。

0

我想創建一個文件夾(如果不存在)的原因是爲了確保它在我嘗試存儲圖像之前退出。

這裏閱讀文章和我的結論幾個谷歌搜索是處理圖片上傳的正確方法是

  1. 要創建(在我的情況)文件夾「圖像」通過手,以確保它的存在後,
  2. 然後保存現有的文件夾中上傳IMG:
string path =Server.MapPath("~/Images/"+ UploadedImageName); 
file.SaveAs(path); 
+0

與你原來的問題一樣,你**想使用代碼**創建文件夾,我建議你這樣做,並通過使用'Directory.Exists(path)'來驗證文件夾的存在。 –

相關問題