Laden...

GetFiles(string Searchpattern) - Mehrere Dateitypen

Erstellt von Danwe vor 16 Jahren Letzter Beitrag vor 16 Jahren 4.071 Views
D
Danwe Themenstarter:in
209 Beiträge seit 2007
vor 16 Jahren
GetFiles(string Searchpattern) - Mehrere Dateitypen

hi,

Ich hohle alle Dateien aus einem Verzeichnis, das geht wunderbar mit:

FileInfo[] ChildFiles = ParentDirInfo.GetFiles();

Nun möchte ich jedoch bestimmte Dateien heraushohlen, z.B. alle mit der Endung ".doc", ".txt", "*.rtf".
Ich habe also folgendes versucht:

FileInfo[] ChildFiles = ParentDirInfo.GetFiles("*.doc,*.txt,*.rtf");
So findet er garnichts mehr. Was funktioniert hat, ist z.B. nur nach "*.rtf" zu suchen, aber mehrere nimmt er im Searchpattern leider nicht an, zumindest nicht so wie ich es schon probiert habe.

Wie muss der richtige Searchpattern lauten, um mehrere Dateitypen auszufragen?



http://www.mycsharp.de/wbb2/thread.php?threadid=6050&hilight=+GetFiles+Searchpattern

A
254 Beiträge seit 2007
vor 16 Jahren

Hi,

in der MSDN Hilfe steht als Übergabe searchPattern. Deshalb gehe ich davon, aus dass auch nur ein Pattern übergeben werden kann. Somit müsstes Du vielleicht die Methode für alle Pattern's aufrufen und die Liste zusammensetzen.

Tschüss

D
Danwe Themenstarter:in
209 Beiträge seit 2007
vor 16 Jahren

Ne, so gehts nicht.
SearchPattern ist ein String, nichts anderes. Muss also anders gehen, wenns überhaupt gehen sollte.

A
254 Beiträge seit 2007
vor 16 Jahren

Hi,

hab mich vielleicht misverständlich ausgedrückt. Ich glaube auch ,dass man nur ein Suchmuster übergeben kann.

Ich würde deshalb für jedes Suchmuster GetFiles aufrufen und die Arrays zusammensetzen.

Tschüss

D
Danwe Themenstarter:in
209 Beiträge seit 2007
vor 16 Jahren

Ja, bin ich gerade dabei das so zu lösen, wenns nicht anders geht 🙁

Ein Problem ist jetzt nurnoch, dass ich, wenn ich z.B. ".doc" angebe, auch alle Dateien bekomme die z.B. in ".document" enden. Kann ich direndwie sagen, nach dem "doc" ist ende? Ich habe ja nicht ".doc" dort stehen, dann könnte ichs nachvollziehen.

S
489 Beiträge seit 2007
vor 16 Jahren

Probiere mal in Deinem ursprünglichen Suchmuster die Kommas durch Semikolons zu ersetzen:

FileInfo[] ChildFiles = ParentDirInfo.GetFiles("*.doc;*.txt;*.rtf");

Das sollte dann eigentlich funktionieren

F
10.010 Beiträge seit 2004
vor 16 Jahren

@Danwe:
Nein, das ist eine dokumentierte besonderheit von Windows, hat
noch nichteinmal etwas mit .NET zu tun.
Ist immernoch ein DOS überbleibsel.

4.221 Beiträge seit 2005
vor 16 Jahren

Die schnellste Variante wird sein, dass Du mit GetFiles alle reinziehst und dann jedes File auf alle gesuchten Extensions prüft (die Guten ins Töpfchen die Schlechten in den Eimer).

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...

D
Danwe Themenstarter:in
209 Beiträge seit 2007
vor 16 Jahren

Stimmt, so habe ichs am Anfang getestet, bis ich auf den SearchPattern gekommen bin 🙂
Die Möglichkeit habe ich schon wieder ganz vergessen, danke für die Erinnerung ich glaube so spare ich mir die umständlichste Arbeit!

4.221 Beiträge seit 2005
vor 16 Jahren

Genau 🙂

Vorallem im Hinblick darauf wie das WindowsAPI es löst.... sonst werden pro Extension die Files n-mal eingelesen (1 mal pro Type)... das WindowsAPI kocht ja schliesslich auch nur mit Wasser.

Früher war ich unentschlossen, heute bin ich mir da nicht mehr so sicher...