Dateinamen auslesen mit Ansi C ?



  • Hi,

    gibt es unter C irgendeine Funktion, mit der ich gucken kann, welche Dateien in einem bestimmten Ordner liegen und diese Namen direkt in Variablen speichern kann?

    Ich brauche das zwingend!

    Danke für jede Hilfe!



  • Mit C geht das nicht, aber schau dir mal das hier an:

    FindFirstFile();			
    FindNextFile();
    

    API!!!
    ps: ich musste letztens ein programm schreiben das alle Dateitypen in einem Verzeichnis findet auflistet und sortiert, und da hab ich auch die methode mit dem FileHandle benutzt und die oben genannten funktionen!
    und die rekursion ist ja auch wichtig, wegen den unterordnern! 🙂

    mfg hohesC



  • Mit C geht das nicht? DAS MUSS! Ich soll es schließlich mit C machen...

    Gibt es da nix wie "DIR" oder "LS" oder sowas?

    Mmh....



  • Mit C geht das schon, nur nicht mit der Standardbibliothek.



  • 😕 SONDERN??? 😕



  • die dirent.h ist eigentlich überall bei. Standard ist sie aber wirklich nicht..

    ansonsten ginge sowas in der Art:

    system ("DIR > c:\\temp\\dir.txt");
    F = fopen("c:\\temp\\dir.txt", "r");
    while (row = fread(F))
    {
       /* string auseinanderwuseln */
    }
    

    Im UNIX den entsprechenden Befehl ls..

    Ist allerdings nicht wirklich schön und schon garnicht schnell..



  • @sascha : lern erstmal c, dann sehen wir weiter!

    @doc : er meinte wohl einen c-befehl, sowas in der art

    s = dir("C:\...");

    den gibts natürlich nicht, c ist ja keine script- oder batchsprache



  • Man könnte theoretisch schon sowas machen:

    system("ls > file");
    

    und dann file parsen.

    Rein theoretisch könnte man sogar alles möglichen Kombinationen von Dateinamen generieren und dann versuchen diese mit fopen zu öffnen.

    Fazit: Beides totaler Schwachsinn.



  • TactX schrieb:

    Man könnte theoretisch schon sowas machen:

    system("ls > file");
    

    und dann file parsen.

    Rein theoretisch könnte man sogar alles möglichen Kombinationen von Dateinamen generieren und dann versuchen diese mit fopen zu öffnen.

    Fazit: Beides totaler Schwachsinn.

    würde ich gar nicht empfehlen. Weil das Output von ls nicht unbedingt gleich auf allen Rechnern ist. Was ist, wenn man ein wrapper von ls hat und ein anderes Format (früher hatte ich so)? Und wenn man kein Schreiberecht hat oder 'file' nicht beschreibar ist?

    Am besten man greift auf eine System Funktion, WinAPI und POSIX bieten Funktionen dafür an, die bevorzugt werde sollten.



  • TactX schrieb:

    Fazit: Beides totaler Schwachsinn.

    🙄 Auch wenn ich mich ungern selber quote... 🙄



  • TactX schrieb:

    TactX schrieb:

    Fazit: Beides totaler Schwachsinn.

    🙄 Auch wenn ich mich ungern selber quote... 🙄

    habe ich auch später gelesen aber nicht mehr meinen Beitrag editiert.


Anmelden zum Antworten