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(...'看看第一個索引,看看它的完整路徑是什麼。 –

相關問題