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");
如果我想添加图片,我必须将它们放入资源中并使用以下方法从 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");