As bubka3 recommended:
https://forums.alliedmods.net/showthread.php?p=602270
Code:
public ReadFileFolder(String:path[]){
new Handle:dirh = INVALID_HANDLE;
new String:buffer[256];
new String:tmp_path[256];
new FileType:type = FileType_Unknown;
new len;
len = strlen(path);
if (path[len-1] == '\n')
path[--len] = '\0';
TrimString(path);
if(DirExists(path)){
dirh = OpenDirectory(path);
while(ReadDirEntry(dirh,buffer,sizeof(buffer),type)){
len = strlen(buffer);
if (buffer[len-1] == '\n')
buffer[--len] = '\0';
TrimString(buffer);
if (!StrEqual(buffer,"",false) && !StrEqual(buffer,".",false) && !StrEqual(buffer,"..",false)){
strcopy(tmp_path,255,path);
StrCat(tmp_path,255,"/");
StrCat(tmp_path,255,buffer);
if(type == FileType_File){
if(downloadtype == 1){
ReadItem(tmp_path);
}
else{
ReadItemSimple(tmp_path);
}
}
else{
ReadFileFolder(tmp_path);
}
}
}
}
else{
if(downloadtype == 1){
ReadItem(path);
}
else{
ReadItemSimple(path);
}
}
if(dirh != INVALID_HANDLE){
CloseHandle(dirh);
}
}
Although looping through Directories could make the server lag at times. Cache the results of each file names in the directory.