2013-05-01 80 views
0

在我的項目中,我最終必須保存創建或上網的圖像並保存其他已創建的文件,我知道該如何操作。問題是,當我碰巧救我的圖片,我喜歡這樣的工作:使用相對路徑將項目中的文件和圖像保存到項目文件夾中

using (var imgClient = new WebClient()) 
{ 
    Directory.CreateDirectory(imagesDirectory); 
    imgClient.DownloadFile(imgUrl, imagesDirectory + m_ObjNameToUse + "(" + abv+ ")" + objNumber + ".jpeg"); 
} 

我稱之爲Directory.CreateDirectory方法在這一刻,以確保該目錄創建圖像,防止崩潰之前始終創建。現在

我的問題是,它使用字符串imagesDirectory,這是尋找像這樣的硬編碼字符串:

string imagesDirectory = "C:\\Creation_Folder\\Object_Sets\\Images\\" + _objSetName+ "\\"; 

這一工程,截至目前。但是我正在開發中,這個項目最終會被髮布。我想將圖像保存在項目的「圖像」文件夾下,將_objSetName添加爲新文件夾以區分每個創建的圖像,以避免在同一文件中有太多圖像。

所以我的問題是如何告訴我的應用程序找到Images文件夾中包含的項目,然後創建一個文件夾下_objSetName

回答

5

您可以嘗試使用您的應用程序基礎文件夾AppDomain.CurrentDomain.BaseFolder。這是您的應用程序所在的文件夾。從那裏很容易:

string imagesDirectory = AppDomain.CurrentDomain.BaseFolder + "Object Sets\\Images\\" + _objSetName+ "\\"; 
+0

嗨馬丁,你可以建議我最好的方式:https://stackoverflow.com/questions/49187419/store-excel-file-using-c-sharp-console-application-in-particular-location – BNN 2018-03-09 06:07:24

+0

對不起,鏈接不起作用。 – 2018-03-09 14:21:19

+0

是的我刪除了,檢查這個。 https://stackoverflow.com/questions/49192917/running-the-scheduler-twice-is-updating-the-file-with-the-earlier-file-in-consol/49193095 – BNN 2018-03-09 14:22:32

2
string imagesDirectory = Path.Combine(Environment.CurrentDirectory, "Images", _objSetName); 

側面說明,你可能會想一個文件夾中存儲的圖像像AppData您的用戶都保證有寫訪問。您的應用程序的子目錄可能只能由機器管理員訪問。

+0

好吧,在某種程度上,我希望這些圖像被保護,所以不允許寫入訪問也許是一個好主意。無論如何,我會嘗試你剛剛提出的建議並儘快回覆你。 – hsim 2013-05-01 15:21:38

+0

Environment.CurrentDirectory允許在應用程序的生命週期中更改。這個應用程序可能會丟失它的圖像。 – 2013-05-01 15:22:25

+0

這引發了一個錯誤,因爲它引用了我的計算機的IIS文件,而不是應用程序部署的當前文件夾。 – hsim 2013-05-01 15:28:09

相關問題