S SDCd Medlem sedan jan. 2001 795 inlägg Frågan 18 sep. 2002 09:04 #1 Att öppna/skriva till filer är inte så krångligt, men hur går jag tillväga om jag skulle tex vilja visa alla filer i en katalog/directory?
Någon som har några tips eller länkar till kodexempel/tutorials i ämnet?
Finns det nåt standardsätt? Om inte, hur ser det ut i Linux resp. Windows?
Linux : system("ls");
Win : system("dir");
F Fridolf Medlem sedan aug. 2001 723 inlägg Om du vill spara namnen på alla filer och kataloger i nån lista kan du göra på ungefär detta sätt i windows:
#include <direct.h>
WIN32_FIND_DATA data;
char *katalog = "c:/blabla";
vector<std::string> kataloger;
vector<std::string> filer;
HANDLE h = FindFirstFile(katalog, &data);
if (h == INVALID_HANDLE_VALUE)
// felmeddelande
else {
if ((data.dwFileAttributes | FILE_ATTRIBUTE_DIRECTORY) == data.dwFileAttributes)
kataloger.push_back(data.cFileName);
else filer.push_back(data.cFileName);
while (FindNextFile(h, &data) == TRUE) {
if ((data.dwFileAttributes | FILE_ATTRIBUTE_DIRECTORY) == data.dwFileAttributes)
kataloger.push_back(data.cFileName);
else
filer.push_back(data.cFileName);
}
Marcus E Medlem sedan maj 2002 1 466 inlägg Använder du do slipper du att upprepa kod.
if (h == INVALID_HANDLE_VALUE)
// felmeddelande
else
{
do
{
if ((data.dwFileAttributes | FILE_ATTRIBUTE_DIRECTORY) == data.dwFileAttributes)
kataloger.push_back(data.cFileName);
else
filer.push_back(data.cFileName);
} while (FindNextFile(h, &data) == TRUE);
}
S SDCd Medlem sedan jan. 2001 795 inlägg Kort och koncist = snyggt :)