12. december 2003 - 08:43
Der er
8 kommentarer og 2 løsninger
finde alle filer i en mappe
Jeg vil gerne have fat i navnene på alle filerne i en defineret mappe, er der en der ved hvordan jeg gør det?
Annonceindlæg fra Idura
12. december 2003 - 08:45
#1
Win32 eller Linux ?
12. december 2003 - 08:46
#2
På Windows med: FindFirstFile og FindNextFile Vil du have et eksempel ?
12. december 2003 - 08:46
#3
Win32 eks.: #include <stdio.h> #include <windows.h> int main() { WIN32_FIND_DATA data; HANDLE h = FindFirstFile("*.c",&data); if(h!=NULL) { printf("%s %d %d\n",data.cFileName,data.nFileSizeHigh,data.nFileSizeLow); while(FindNextFile(h,&data)) { printf("%s %d %d\n",data.cFileName,data.nFileSizeHigh,data.nFileSizeLow); } } FindClose(h); return 0; }
12. december 2003 - 08:47
#4
Linux eks: #include <dirent.h> #include <sys/stat.h> #define DIRSEP "/" #define TESTDIR "/home/arne" void process(char *path) { DIR *dirp; struct dirent *entp; struct stat stbuf; char fnm[256]; dirp = opendir(path); while((entp = readdir(dirp)) != NULL) { if(entp->d_name[0]!='.') { sprintf(fnm,"%s%s%s",path,DIRSEP,entp->d_name); stat(fnm,&stbuf); if(!S_ISDIR(stbuf.st_mode)) { printf("%s %d\n",fnm,stbuf.st_size); } else { process(fnm); } } } closedir(dirp); return; } int main() { process(TESTDIR); return 0; }
12. december 2003 - 08:48
#5
Win32 eks. er ikke rekursivt. Linux eks. er rekursivt. Det var lige hvad jeg havde på lager.
12. december 2003 - 08:51
#6
win32, og tak! Points kræver svar:-)
12. december 2003 - 09:06
#7
kom nu arne, ... et svar.
12. december 2003 - 09:07
#8
også du soreno, du har jo også svaret.
12. december 2003 - 09:19
#9
Ok, hvis du synes.
12. december 2003 - 09:55
#10
svar
Kurser inden for grundlæggende programmering