0

Ich habe einen Codeabschnitt, der die Dateien (und Ordner) im Ordner Images durchläuft und die Miniaturbilder in einem UniformGrid anzeigt.Hinzufügen von Bilddateien in Windows Explorer vs. Projektmappen-Explorer

Wenn ich Bilddateien (und Ordner) in den Visual Studio-Projektmappen-Explorer ziehe oder hinzufüge, drücke F5, um das Debugging zu starten. Alle Bilder werden angezeigt.

Aber wenn ich die Bilder zum Windows Explorer hinzufüge und das Debugging starte, werden die Bilder nicht angezeigt. Ich habe versucht, den Projektmappen-Explorer zu aktualisieren, Lösung zu bereinigen, Projektmappe neu zu erstellen und sogar Visual Studio neu zu starten, aber weder die angezeigten Bilder noch die Bilddateien, die im Ordner Abbild des Projektmappen-Explorers aufgeführt sind. Wenn ich die Anzahl der Bilder, die dem Window Explorer mit Directory.GetFiles("../../Images/", "*.jpg", SearchOption.TopDirectoryOnly); hinzugefügt wurden, zähle, spiegelt die Länge des Dateiarrays die korrekte Anzahl der Bilder im Ordner wider.

Warum ist das, wenn ich die Bilder in Windows Explorer hinzufüge, weder der Projektmappen-Explorer noch das Programm die Bilder anzeigen? Und warum zählt die Directory.GetFiles(...).Length die richtige Anzahl von Bilddateien?

Ich habe versucht sowohl Visual Studio als auch nicht als Administrator ausgeführt.

Antwort

1

Wenn Sie das Programm ausführen, sucht es nicht im Bilderordner für Ihr Projekt, sondern im Ordner für Ausgabebilder (höchstwahrscheinlich unterhalb des Verzeichnisses "bin"). Wenn Sie Bilder über den Solution Explorer hinzufügen, werden sie zum Projekt hinzugefügt und (wahrscheinlich) in den Ordner images im Ausgabeverzeichnis kopiert, wenn Sie Ihre Anwendung debuggen oder ausführen.

Auf der anderen Seite, wenn Sie sie nur im Windows Explorer hinzufügen, weiß das Projekt nichts über sie, also kopiert sie diese Dateien nicht. Sie müssen "Alle Dateien anzeigen" im Projekt anzeigen und mit der rechten Maustaste auf die neuen Bilder klicken und sie zu Ihrem Projekt hinzufügen. Nur dann werden sie in das Ausgabeverzeichnis kopiert und sind für Ihre Anwendung zugänglich, wenn Sie sie debuggen.

+0

Aber was, wenn diese Bilder in Runtime/Produktion hinzugefügt werden? Erkennt das Programm automatisch die Existenz der Bilder? – KMC

+0

Nur wenn Sie sie zu dem Ordner hinzufügen, den sie tatsächlich betrachtet, d. H. Dem Ausgabeordner. Versuchen Sie Folgendes: Setzen Sie einen Unterbrechungspunkt in Ihren Code und schauen Sie sich den tatsächlichen Pfad (nicht den relativen Pfad) des Ordners an, auf den Sie zielen möchten, wo sich die Bilder befinden. Ich wette, es ist nicht das, was Sie denken, wenn Sie debuggen. Zum Beispiel, wenn Sie 'Directory.GetFiles (...' Blick auf den ersten Index und sehen, was es ist voller Pfad ist. –