Ejemplo n.º 1
0
void listfiles(const char *dir, const char *ext, vector<char *> &files, int (__cdecl *sf)(const char **, const char **))
{
    listdir(dir, ext, files);
    string s;
    if(homedir[0])
    {
        formatstring(s)("%s%s", homedir, dir);
        listdir(s, ext, files);
    }
    loopv(packagedirs)
    {
        formatstring(s)("%s%s", packagedirs[i], dir);
        listdir(s, ext, files);
    }
#ifndef STANDALONE
    listzipfiles(dir, ext, files);
#endif
    if(sf)
    { // sort and remove doubles
        files.sort(sf);
        for(int i = files.length() - 1; i > 0; i--)
        {
            if(!strcmp(files[i], files[i - 1])) delstring(files.remove(i));
        }
    }
}
Ejemplo n.º 2
0
int listfiles(const char *dir, const char *ext, vector<char *> &files)
{
    int dirs = 0;
    if(listdir(dir, ext, files)) dirs++;
    string s;
    if(homedir[0])
    {
        formatstring(s)("%s%s", homedir, dir);
        if(listdir(s, ext, files)) dirs++;
    }
    loopv(packagedirs)
    {
        formatstring(s)("%s%s", packagedirs[i], dir);
        if(listdir(s, ext, files)) dirs++;
    }
#ifndef STANDALONE
    dirs += listzipfiles(dir, ext, files);
#endif
    return dirs;
}