verzeichnis auslesen und dateien nummerieren in c

Dieses Thema im Forum "C/C++" wurde erstellt von hoernchen, 06.03.2006.

  1. #1 hoernchen, 06.03.2006
    hoernchen

    hoernchen UBERgarstiges nagetier

    Dabei seit:
    17.02.2005
    Beiträge:
    1.081
    Zustimmungen:
    0
    eventuell liegt es an der uhrzeit, aber google will mir nix verraten.

    ich moechte ein verzeichnis (zb. das aktuelle) auslesen und die einzelnen dateien durchnummerieren. auslesen geht ja noch :

    #include <sys/types.h>
    #include <dirent.h>

    int main(int argc, char **argv)
    {
    DIR *dirHandle;
    struct dirent * dirEntry;

    dirHandle = opendir(".");
    if (dirHandle) {
    while (0 != (dirEntry = readdir(dirHandle))) {
    puts(dirEntry->d_name);
    }
    closedir(dirHandle);
    }
    }

    die endgueltige ausgabe solte zb. so aussehen :

    1) erste_datei
    2) zweite_datei
    etc.

    wie ich die ausgabe von . und .. verhindere mag mir zwar gerade justament nicht einfallen, ist aber nicht so wichtig.
    sinn des ganzen wird es, via ziffer eine datei auszusuchen, deren inhalt dann in eine variable uebergeben wird.

    wenn es wie ich fuerchte zu trivial ist, reicht ein kurzes "such weiter du faules aas" oder ein tritt in den allerwertesten in die richtige richtung.
     
  2. Anzeige

    Schau dir mal diese Kategorie an. Dort findest du bestimmt etwas.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
  3. rikola

    rikola Foren Gott

    Dabei seit:
    23.08.2005
    Beiträge:
    2.133
    Zustimmungen:
    0
    Hi, hab noch nie mit dirent gearbeitet, doch prinzipiell sehe ich zwei Moeglichkeiten:
    a) Du legst alle Dateien in einem Array ab. Z.B. nur deren Namen, oder deren stream file descriptor (man dirfd). Dann laeufst Du mit einer einfache Laufvariablen durch das Array und gibst Zahl + Dateiname aus.
    b) Du benutzt telldir: Beim ersten Oeffnen des Verzeichnisses gibt's ein telldir_begin, beim Durchlaufen ein telldir_current, und fuer die Ausgabe benutzt Du deren Differenz - vorausgesetzt, dass die Zeiger fortlaufend sind.

    Ich wuerde wohl die erste Methode benutzen, denn wenn du mit den Dateien weiterarbeiten willst, musst Du ja ohnehin irgendwo eine Referenz drauf haben.
     
  4. #3 hazelnoot, 07.03.2006
    Zuletzt bearbeitet: 07.03.2006
    hazelnoot

    hazelnoot www.mywm.dl.am

    Dabei seit:
    13.10.2005
    Beiträge:
    377
    Zustimmungen:
    0
    Ort:
    in Geiersberg
    Code:
    #include <sys/types.h>
    #include <dirent.h>
    #include <stdio.h>
    
    int main(int argc, char **argv)
    {
        int run = 1;
        char buffer[100];
        DIR *dirHandle;
        struct dirent * dirEntry;
    
        dirHandle = opendir(".");
        if (dirHandle) {
           while (0 != (dirEntry = readdir(dirHandle))) {
              printf("%d) %s\n", run, dirEntry->d_name);
              run ++;
           }
           closedir(dirHandle);
        }
    }
    
    da waere die ausgabe:
    1) .
    2) ..
    3) dateiname
    usw
    fuegst du dann die while schleife noch so abaenderst:
    Code:
        while (0 != (dirEntry = readdir(dirHandle))) {
            if(strcmp(dirEntry->d_name, ".") == 0 ||
               strcmp(dirEntry->d_name, "..") == 0){
                continue;
                }
            printf("%d) %s\n", run, dirEntry->d_name);
            run ++;
        }
    
    dann wird der . und der .. nicht ausgegeben dann ist ausgabe:
    1) dateiname
    2) dateiname2

    ich hoffe ich konnte dir helfen
    mfg hazelnoot
     
  5. #4 hoernchen, 07.03.2006
    hoernchen

    hoernchen UBERgarstiges nagetier

    Dabei seit:
    17.02.2005
    Beiträge:
    1.081
    Zustimmungen:
    0
    danke vielmals fuer die antworten. ich werds in kuerze einbauen und brav berichten.

    btw. find ich den zusammenhang der nicks genial :-))))
     
  6. Anzeige

    Vielleicht findest du HIER Antworten.
    Registrieren bzw. einloggen, um diese und auch andere Anzeigen zu deaktivieren
Thema: verzeichnis auslesen und dateien nummerieren in c
Besucher kamen mit folgenden Suchen
  1. c programmierung verzeichnis auslesen

    ,
  2. linux verzeichnis auflisten und durchnummerieren

    ,
  3. c verzeichnis auslesen

Die Seite wird geladen...

verzeichnis auslesen und dateien nummerieren in c - Ähnliche Themen

  1. Shell-Script zum auslesen von Dateien aus versch. Verzeichnissen

    Shell-Script zum auslesen von Dateien aus versch. Verzeichnissen: Hallo Leute, ich habe ein Problem wo ich mit meinem Wissensstand einfach nicht weiterkomme: Ich habe etwa 3000 verschiedene Verzeichnisse in...
  2. verzeichnisse+unterverzeichnisse auslesen?

    verzeichnisse+unterverzeichnisse auslesen?: . . .
  3. Dateien aus web Verzeichnis auslesen.

    Dateien aus web Verzeichnis auslesen.: Guten Abend! Ich habe ein großes Problem und möchte euch um Hilfe Bitten. Auf meinem Web Speicher stehen Dateien zum Download die sich aber...
  4. Auslesen eines Verzeichnissbaums

    Auslesen eines Verzeichnissbaums: Hi Ich habe noch nicht so viel Erfahrung mit Bashscripten und habe folgendes Problem: Meine ganze Musiksammlung ist so strukturiert:...
  5. Verzeichnisinhalt auslesen

    Verzeichnisinhalt auslesen: Moin! Wie finde ich raus, welche Dateien in einem bestimmten Verzeichnis liegen? Ich suche also quasi das Pendant zu findfirst/findnext aus dem...