2013-05-01 72 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

相关问题