Ich versuche einen FTP-Server unter Linux zu schreiben. Wie kann ich in diesem Fall von einem C-Programm Dateien im Verzeichnis auf dem Terminal auflisten? Vielleicht kann ich die exec-Funktion verwenden, um den Befehl find auszuführen, aber ich möchte, dass der Dateiname als Zeichenfolge zum Senden des Client-Programms verwendet wird. Wie kann ich das machen?
Danke für die Antworten.
png
Dateien wollen ?Eine winzige Ergänzung zu JB Jansens Antwort - in der Hauptschleife
readdir()
würde ich Folgendes hinzufügen:Überprüfen Sie einfach, ob es sich wirklich um eine Datei handelt, nicht um einen (sym) Link, ein Verzeichnis oder was auch immer.
HINWEIS: Weitere Informationen finden Sie
struct dirent
in derlibc
Dokumentation .quelle
d_type
, Linux und BSD jedoch (ich weiß, dass die Frage mit Linux gekennzeichnet ist und die Antwort nur ein wenig erweitert). Selbst dann werden nicht alle Dateisysteme einheitlich unterstützt , es sollte jedoch mit den meisten FS funktionieren.Hier ist ein vollständiges Programm zum rekursiven Auflisten des Ordnerinhalts:
quelle
Der folgende Code druckt nur Dateien innerhalb eines Verzeichnisses und schließt Verzeichnisse innerhalb eines bestimmten Verzeichnisses beim Durchlaufen aus.
quelle