Υπάρχει κάποια συνάρτηση στην c που να ψάχνει στον κατάλογο?

Συζητήσεις για την γλώσσα C και C++

Συντονιστές: Super-Moderators, WebDev Moderators

Απάντηση
Άβαταρ μέλους
teo_ramones
Δημοσιεύσεις: 55
Εγγραφή: 15 Απρ 2005 15:48
Επικοινωνία:

Υπάρχει κάποια συνάρτηση στην c που να ψάχνει στον κατάλογο?

Δημοσίευση από teo_ramones » 04 Μαρ 2006 20:38

Υπάρχει κάποια συνάρτηση στην C που να ψάχνει στον κατάλογο που είμαι?
Δηλαδή έστω είμαι στο C:teo/lib/ πως μπορώ να ψάξω να βρώ τα αρχεία που βρίσκονται στον κατάλογο lib?
Αν δεν υπάρχει συνάρτηση , υπάρχει κάποιος άλλος τρόπος?

Ευχαριστώ παιδιά

Άβαταρ μέλους
dva_dev
Script Master
Δημοσιεύσεις: 3790
Εγγραφή: 16 Σεπ 2005 01:32
Επικοινωνία:

Υπάρχει κάποια συνάρτηση στην c που να ψάχνει στον κατάλογο?

Δημοσίευση από dva_dev » 04 Μαρ 2006 21:58

Ψάξε στο google για findfirst / findnext.

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Υπάρχει κάποια συνάρτηση στην c που να ψάχνει στον κατάλογο?

Δημοσίευση από soteres2002 » 05 Μαρ 2006 17:27

kati poli aplo pou boreis kai monos sou na ftiakseis einai na fortoseis ta dirent.h ena example

Κώδικας: Επιλογή όλων

#include <stdio.h>
#include <dirent.h>
#include <stdlib.h>
#include <fcntl.h>

int main&#40;&#41; &#123;
    //edo mesa kseskizeis tin search
&#125;

//&#123;&#123;
int search&#40;char *fname&#41; &#123;
     DIR d;
     char *file;
     boolean found = false;
 
     if&#40;&#40;d == opendir&#40;getenv&#40;"DIR"&#41;&#41;&#41; == NULL&#41; &#123;
         printf&#40;"&#40;*&#41; Cannot establish stream!\n"&#41;;
         return -1;
     &#125;
     
     while&#40;&#40;file = readdir&#40;d&#41;&#41; != NULL&#41; &#123;
          if&#40;file == fname&#41; &#123;
               printf&#40;"&#40;*&#41; File found! \n"&#41;;
               found = true;
          &#125;
     &#125;

     if&#40;!found&#41; &#123;
         printf&#40;"&#40;*&#41; File does not exist in current directory...\n"&#41;;
     &#125;
     
     closedir&#40;d&#41;;
     return 0;
&#125;
//&#125;&#125;

i getenv tha doulepsei mono se linux, an thes se windows bazeis ena argument akoma me pointer stin sinartisi kai anti gia tin getenv bazeis to onoma tis metablitis.

dinontas apo ena UNIX shell tin entoli
#printenv
tha deis oles tis metablites periballontos an den einai DIR tha einai kapos paremferes tha kanei bam.

hope i've helped.

Άβαταρ μέλους
teo_ramones
Δημοσιεύσεις: 55
Εγγραφή: 15 Απρ 2005 15:48
Επικοινωνία:

Υπάρχει κάποια συνάρτηση στην c που να ψάχνει στον κατάλογο?

Δημοσίευση από teo_ramones » 05 Μαρ 2006 20:01

ευχαριστώ πολύ με βοηθήσατε αρκετά, νομίζω θα τα καταφέρω να το πετύχω αυτό που θέλω.

Και το παράδειγμα πολύ κατατοπιστικό

Άμα κολλήσω πουθενά θα ξανακάνω post

THANX AGAIN para poli

Άβαταρ μέλους
soteres2002
S. & H. Moderator
Δημοσιεύσεις: 1524
Εγγραφή: 05 Μαρ 2004 22:17
Τοποθεσία: Ιωάννινα

Υπάρχει κάποια συνάρτηση στην c που να ψάχνει στον κατάλογο?

Δημοσίευση από soteres2002 » 06 Μαρ 2006 18:33

ekana mia diorthosi ston kodika pls ksana dose basi

Κώδικας: Επιλογή όλων

#include <stdio.h>
#include <dirent.h>
#include <stdlib.h>
#include <fcntl.h>

int main&#40;&#41; &#123;
    //edo mesa kseskizeis tin search
&#125;

//&#123;&#123;
int search&#40;char *fname&#41; &#123;
     DIR d;
     FILE *file;
     boolean found = false;
 
     if&#40;&#40;d == opendir&#40;getenv&#40;"DIR"&#41;&#41;&#41; == NULL&#41; &#123;
         printf&#40;"&#40;*&#41; Cannot establish stream!\n"&#41;;
         return -1;
     &#125;
     
     while&#40;&#40;file = readdir&#40;d&#41;&#41; != NULL&#41; &#123;
          if&#40;file.d_name == fname&#41; &#123;
               printf&#40;"&#40;*&#41; File found! \n"&#41;;
               found = true;
          &#125;
     &#125;

     if&#40;!found&#41; &#123;
         printf&#40;"&#40;*&#41; File does not exist in current directory...\n"&#41;;
     &#125;
     
     closedir&#40;d&#41;;
     return 0;
&#125;
//&#125;&#125;


Απάντηση

Επιστροφή στο “C, C++”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 0 επισκέπτες