?
so um ein verzeichnis index anzulegen solltest du nicht system nehmen
sondern z.b. WIN32_FIND_DATA
ich programmiere gerade einen webserver
und dafür brauche ich ja auch eine funktion die bei verzeichnissen ohne einen
default index(z.b. index.html) eine verzeichnis übersicht ausgibt.
diese poste ich hier mal muss aber dazu sagen der funktion sellbst wird ein verzeichnis in der form htdocs/ordner1/ordner2/ übergeben
die "funktion" WIN32_FIND_DATA
erwartet aber ein verzeichniss in der form
htdocs\\ordner1\\ordner2\\
die funktion ergänzt einen string um die information
zuerst fügt es die Verzeichnisse ein dann die dateien
weiterhin ist zu sehen wie man bestimmte dateien auschließt
in meinen fall alle versteckten und die dateien .htaccess, .htpasswd und die beide sinnlosen angaben . und ..(DOS religte)
std::string showdir(const char *directory,const char *path, std::string body)
{
WIN32_FIND_DATA fd;
HANDLE hfind;
char buf[255];
char newbuf[255];
int i;
int j;
std::string bodytemp;
strcpy(buf,directory);
i = 0;
j = 0;
while( buf[i] != 0 )
{
if( buf[i] == '/' )
{
newbuf[j] = '\\';
newbuf[j+1] = '\\';
j+=2;
}
else
{
newbuf[j] = buf[i];
j++;
}
i++;
}
newbuf[j] = 0;
strcat( newbuf , "*.*" );
hfind = FindFirstFile(newbuf,&fd);
while(hfind != INVALID_HANDLE_VALUE)
{
if ((std::string)fd.cFileName != "." && (std::string)fd.cFileName != ".." && (std::string)fd.cFileName != ".htaccess" && (std::string)fd.cFileName != ".htpasswd" && fd.dwFileAttributes != FILE_ATTRIBUTE_HIDDEN)
{
if (fd.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
{
sprintf(newbuf,"<TR><TD><A HREF=\"%s%s\">%s</a></TD>\t\t<TD>-</TD><TD> Verzeichniss</TD></TR>\n",path,fd.cFileName,fd.cFileName);
body += newbuf;
}
else
{
sprintf(newbuf,"<TR><TD><A HREF=\"%s%s\">%s</a></TD>\t\t<TD>%d</TD><TD> BYTES???</TD></TR>\n",path,fd.cFileName,fd.cFileName,fd.nFileSizeLow);
bodytemp += newbuf;
}
}
if(!FindNextFile(hfind,&fd))
break;
}
FindClose(hfind);
body +=bodytemp;
return body;
}