Ich mache eine Konsolenanwendung und aus einem bestimmten Ordner möchte ich nur die Bilder mit der spezifischen Erweiterung erhalten.Image-Datei aus Ordner in FileInfo holen
Unter Code versuche ich, aber es ruft alle Dateien aus dem bestimmten Pfad ab.
string[] extensions = { ".jpg", ".jpeg", ".png", ".gif", ".tif" };
FileInfo[] files = new DirectoryInfo(SourcePath).GetFiles("*.*", SearchOption.AllDirectories);
Wie kann ich die Erweiterung auf FileInfo[]
setzen?
aktualisiert Ausgabe
Antwort
List<String> ImageFiles = Directory.GetFiles(SourcePath, "*.*",
SearchOption.AllDirectories)
.Where(file => new string[] { ".jpg", ".jpeg", ".png", ".gif", ".tif" }
.Contains(Path.GetExtension(file)))
.ToList();
List<FileInfo> files = new List<FileInfo>();
foreach (string filess in ImageFiles)
{
string replace = filess.Replace(@"\", "/");
files.Add(new FileInfo(replace.Split('/').Last()));
}
hier Wie kann ich von für jede Schleife loszuwerden, da ich nur Dateinamen bin benötigen und nicht den ganzen Weg
Im Moment gibt es absolut keine Verbindung zwischen Ihren 'Erweiterungen' und dem Aufruf von' GetFiles'. Sie müssen entweder die Liste der Dateien filtern oder die Erweiterungen iterieren. –
Mögliches Duplikat von [Können Sie Directory.GetFiles() mit mehreren Filtern aufrufen?] (Https://stackoverflow.com/questions/163162/can-you-call-directory-getfiles-with-multiple-filters) –
@ManfreedRadlwimmer \t Ist es nicht möglich, Daten in FileInfo [] Dateien zu erhalten? –