2016-03-23 7 views
1

Ich habe gelesen http://linux.die.net/man/3/glob und es scheint, dass Glob Diskettenzugriff tun wird, obwohl ich es nicht will.Globbing in C, wie man Dateien ausschließt

Gibt es eine C-Glob-Funktion, um eine Zeichenfolge mit einem Glob-Muster zu vergleichen und mir zu sagen, ob es übereinstimmt? d.h. kein Plattenzugriff.

Wenn nicht, wie kann ich Glob zu exclude Dateien verwenden, wenn rekursiv (Tiefe zuerst) ein Dateisystem durchlaufen?

while((entry = readdir(dp))) { 
    // need to continue to next iteration of loop, here, if entry->d_name matches glob pattern 

    // do stuff and recurse 
} 
+2

Siehe die 'fnmatch'-Funktion, die im Abschnitt Siehe auch auf der von Ihnen verlinkten Seite aufgeführt ist. –

+0

@AndrewMedico Danke, genau das, was ich gesucht habe. Wenn du es zur Antwort machst, akzeptiere ich es. – fadedbee

Antwort

2

Verwenden Sie die fnmatch-Funktion. Es vergleicht einen Dateinamen/Pfad mit einem gegebenen Muster.