c#在文件夹结构中存储资源(特别是图像)

时间:2018-04-08 20:15:59

标签: c# directory picturebox

如果我想添加图片,我必须将它们放入资源并使用以下方法从picturebox.Image属性访问它们:

AddPicturesFromOtherFolders.Properties.Resources.myPicture

这是我所知道的唯一方式。如果我有10张左右的图像,这样可以正常工作,但如果我有500张图像怎么办?没有人能跟踪任何事情。所以我想在文件夹结构中构建这些超高的500图像,然后我可以使用以下内容访问:

pictureBox1.Image= ../../Assets/img/specialImages/myImage.png

那将非常简洁,但我找不到任何方法,这涉及100%C#代码。 如果你能帮助我,我会很感激。

度过愉快的一天,

Alexander Lenssen

2 个答案:

答案 0 :(得分:0)

没有办法涉及100%C#代码。至少有一些编译器选项或安装程序操作是必需的。但第一个问题甚至是存储它的位置:Programm Directory还是UserProfiles?

假设这些图像是静态的(只有在安装程序运行时才会更改),您只需将它们存储到程序目录中即可。然后从那里使用其余代码部署它们。将它们放入Output目录并不是那么困难。 Visual Studio有这样的选项:https://msdn.microsoft.com/en-us/library/0c6xyb66.aspx你可以更进一步,比如拥有一个图像共享存储库(即大多数Photoshop程序在Programms下有一个内容文件夹)。

你可以直接使用"软链接"它们,这意味着您可以在磁盘上有一个actuall文件夹,它将被复制/同步到任何构建的输出目录中。

如果您需要动态更新这些图像(没有管理权限),那么事情会变得更加复杂。您仍然可以通过SpecialFolders完成此操作。 CommonApplicationData似乎是放置这种东西的正确位置。甚至Steam和Minecraft的旧Java Launcher也在那里做了很多存储。更不用说每个WebBrowser。

答案 1 :(得分:0)

您可以使用Image.FromFile并从文件系统中存储的任何文件加载图像。例如:

pictureBox1.Image.FromFile(@"D:/Assets/img/specialImages/myImage.png");