2009-03-18 5 views
1

Ich baue eine asp.net Website. Ich möchte das Bild auf der Seite anzeigen, aber während ich den Bildnamen kenne, kenne ich die Erweiterung nicht.Wie man Bild mit seinem Namen und irgendeiner Erweiterung erhält?

Also, ich möchte das Bildverzeichnis öffnen und das Bild durch seinen Namen unabhängig von seiner Erweiterung erhalten.

+0

Welche Rolle zu bekommen sind Sie mit Schwierigkeiten zu haben? Was hast du versucht? Was ist passiert? –

Antwort

8

können Sie das Directory-Objekt verwenden, um eine Liste der Datei in einem Verzeichnis dieser

string imageFilename = System.IO.Directory.GetFiles(imageDirectory, name + ".*").First(); 
+0

Es ist eine Frage des Geschmacks, aber ich würde lieber "Name +". * "Anstelle der Concat-Funktion verwenden. Gleiches Endergebnis, aber besser lesbar. – vipirtti

+0

Es gab mir diesen Fehler: "System.ArgumentException: Illegale Zeichen im Pfad." –

+0

"System.ArgumentException: Unzulässige Zeichen im Pfad." tritt auf, wenn Sie dem Zeichen '\' nicht entkommen lassen Versuchen Sie "C: \\" oder @ "C: \" – bstoney

2

Das ist nicht wirklich, wie Dateien funktionieren - Sie müssen den ganzen Namen kennen. Was passiert beispielsweise, wenn mehrere Bilder denselben Basisnamen und unterschiedliche Erweiterungen haben? Vergleichen Sie zum Beispiel foo.png und foo.jpg.

Ein Vorschlag ist es, eine Wildcard-Suche für alle Dateien mit einem Basisnamen in diesem Verzeichnis (das ist, was bstoney Lösung tut; see here). Wenn Sie genau eine Übereinstimmung finden, sind Sie fertig. Wenn Sie mehrere Übereinstimmungen erhalten, müssen Sie Regeln festlegen, welche davon gewinnt.

Verwandte Themen