我们可以在项目中创建一个文件夹并由用户(而不是bin)在其中添加图像吗?

时间:2019-03-09 11:22:35

标签: c# visual-studio-2017

我正在创建一个桌面应用程序,用户可以在其中添加人物及其图像。当前,图像文件夹位于bin文件夹中,但是当我发布应用程序并在客户端PC上运行时,图像文件夹丢失了。

OR

我可以通过编程方式在Project->Properties->Resources中添加图像吗?

Can i use this folder?

当前,当我尝试在PMS Project中使用此Images文件夹时,然后将图像添加到bin folder中存在的文件夹中。如何在此文件夹中添加? 目前,我尝试访问的是

string path = System.IO.Directory.GetCurrentDirectory();

Bitmap imgImage = new Bitmap(pictureBox1.Image);

System.IO.File.Copy(ImageName, Path.Combine(appPath, CNIC + Path.GetFileName(ImageName)), true);

我还想将图像文件夹保留在安装文件夹中。 但是它在bin文件夹中。我该如何实现?

2 个答案:

答案 0 :(得分:1)

如果您打算在应用程序中存放一个私人文件夹,则应使用标准规格。您应该在SpecialFolder枚举

中定义的Environment.ApplicationData内部创建一个文件夹。

您的应用程序的启动代码中可能会有类似的内容

 string commonFolder = Environment.GetFolderPath(Environment.SpecialFolder.ApplicationData);
 string appFolder = Path.Combine(commonFolder, "PMS");
 string imgFolder = Path.Combine(appFolder, "PoliceImages");
 Directory.CreateDirectory(imgFolder);

现在这些字符串变量应该存储在某种全局配置静态类中,您可以在其中从应用程序的任何部分检索它们

答案 1 :(得分:1)

如果要自动创建文件夹,则可以添加将进入该文件夹的基本图像,并标记其 Build Action (构建操作)和 Copy to Output Directory (复制到输出目录)属性在其属性窗口中。这样可以确保文件夹已创建,并且图像也将复制到已发布的副本中。

enter image description here

或者,如果在开发时没有映像,则可以使用System.IO类在客户端的安装位置创建文件夹。喜欢-

System.IO.Directory.CreateDirectory("ss")

但是,我想提一下,允许用户将图像添加到bin的子文件夹中不是一种好习惯,除非添加后它将成为应用程序本身的一部分。如果是内容或数据,请尝试将其保留在安装了应用程序二进制文件的文件夹中。可能

  • 使用适当的数据库存储。

  • C:\ Users \ [USERNAME] \ AppData \ Roaming

    var目录= Environment.GetFolderPath(Environment.SpecialFolder.AppData);

    OR

    var目录= Environment.GetFolderPath(Environment.SpecialFolder.MyDocuments);

  • 或者只是D:\ Temp \ [ApplicationName]