0

我有一段代码循环访问Images文件夹中的文件(和文件夹)并在UniformGrid中显示缩略图。在Windows资源管理器中添加图像文件与解决方案资源管理器

当我拖动或添加图像文件(和文件夹)到Visual Studio解决方案资源管理器,然后按F5开始调试,所有图像显示。

但是,当我将图像添加到Windows资源管理器并开始调试时,图像不显示。我尝试刷新解决方案资源管理器,清理解决方案,重建解决方案,甚至重新启动Visual Studio,但是也不显示图像,也没有列出解决方案资源管理器的图像文件夹中列出的图像文件。如果我使用Directory.GetFiles("../../Images/", "*.jpg", SearchOption.TopDirectoryOnly);来计算添加到Window Explorer的图像数量,则文件数组的长度确实会反映文件夹中图像的正确数量。

为什么当我在Windows资源管理器中添加图像时,解决方案资源管理器和程序都不显示图像?为什么Directory.GetFiles(...).Length确实会计算正确的图像文件数量?

我已经尝试运行Visual Studio作为和不作为管理员。

回答

1

当您运行该程序时,它不会在您的项目的images文件夹中查找,而是查看输出图像文件夹(最有可能位于“bin”目录下)。当您通过解决方案资源管理器添加图像时,它们会被添加到项目中,并且在调试或运行应用程序时(并且很可能)会被复制到输出目录中的images文件夹中。

另一方面,当您只是在Windows资源管理器中添加它们时,项目不知道它们,因此它不会复制这些文件。您需要在项目上“显示所有文件”,然后右键单击新图像并将其添加到项目中。只有这样,它们才会被复制到输出目录,并且在调试时可以被应用程序访问。

+0

但是如果要在运行时/生产中添加这些图像呢?程序是否自动识别图像的存在? – KMC

+0

仅当您将它们添加到实际正在查看的文件夹中时,即输出文件夹。试试这个:在你的代码中加入一个断点,看看你试图将目标放在图像所在的文件夹的实际路径(而不是相对路径)。我敢打赌,这不是你在调试时的想法。例如,如果你做'Directory.GetFiles(...'看看第一个索引,看看它的完整路径是什么。 –

相关问题