Wyświetlanie listy plików z katalogu
bartosak
Wielu się zastanawia od odczytać listę plików z katalogu, a rzecz jest w sumie prosta:
#include <stddef.h>
#include <stdio.h>
#include <sys/types.h>
#include <dirent.h>
int main (void)
{
DIR *dp;
struct dirent *ep;
dp = opendir ("./");
if (dp != NULL)
{
while (ep = readdir (dp)) puts (ep->d_name);
(void) closedir (dp);
}
else
{
perror ("Nie mozna otworzyc katalogu");
}
return 0;
}
"Error 1 fatal error C1083: Cannot open include file: 'dirent.h': No such file or directory"
Skąd go zaczerpnąć ? Standardowo wydaje się go nie być w składzie VS TeamSuite 2008.. albo nie wiem gdzie go szukać.. ;>
To gdzie ma działać? Na twoim komputerze tylko? To po co dajesz taki przykład?
Przeciez nigdzie nie mowilem ze to ma dzialac wszedzie..
Nie takie znowu proste... W standardzie C++ nie ma czegoś takiego jak "katalog", wszystko zależy od systemu operacyjnego (Linux: '/aaa/aa', Windows: 'C:\aaa\aa').
opendir()/readdir()/closedir() [POSIX, GNU?] nie ma we wszystkich kompilatorach. Twój kod nie działa na, np. MSVC (bo nie ma dirent.h).
Przenośny kod w C++ może używać boost::filesystem.
W C pod Windows można korzystać albo z API (FindFirstFile()/..Next()/..Close()), albo z <io.h> [msvcrt -> _findfirst()/..next()/..close()].
W MinGW-runtime JEST dirent.h.