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

c# Storing resources(specifically images) in folder structure

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

AddPicturesFromOtherFolders.Properties.Resources.myPicture

这是我唯一知道的方法。如果我有 10 张左右的图像,那效果很好,但如果我有 500 张图像呢?没有人可以跟踪任何事情。所以我想在一个文件夹结构中构建这些假设的 500 张图像,然后我可以使用类似的东西访问它:

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

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

祝你有愉快的一天,

亚历山大·伦森

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

假设这些图像是静态的(只会在安装程序运行时发生变化),您可以将它们存储到 Programm 目录中。然后从那里将它们与其余代码一起部署。将它们放入输出目录并不困难。 Visual Studio 有选项:https://msdn.microsoft.com/en-us/library/0c6xyb66.aspx 你可以走得更远,比如有一个图像共享存储库(即,大多数 Photoshop 程序在程序下都有一个内容文件夹)。

您最多可以使用 "soft linking" 个,这意味着您的磁盘上可以有一个实际文件夹,它将 copied/synched 放入任何构建的输出目录中。

如果您需要即时更新这些图像(没有管理权限),事情会变得更加复杂。您仍然可以通过 SpecialFolders 进行操作。 CommonApplicationData 似乎是放置此类内容的合适位置。即使是 Steam 和 Minecraft 的旧 Java Launcher 也在那里做了相当多的存储。更不用说每个 WebBrowser.

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

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