Example #1
0
void scanDirectory(const char* path, const char* ext, FileList& list)
{
    fileListClear(list);
    
#ifdef WIN32
    _finddata_t dir;
    char pathWithExt[260];
    long fh;
    strcpy(pathWithExt, path);
    strcat(pathWithExt, "/*");
    strcat(pathWithExt, ext);
    fh = _findfirst(pathWithExt, &dir);
    if (fh == -1L)
        return;
    do
    {
        fileListAdd(list, dir.name);
    }
    while (_findnext(fh, &dir) == 0);
    _findclose(fh);
#else
    dirent* current = 0;
    DIR* dp = opendir(path);
    if (!dp)
        return;
    
    while ((current = readdir(dp)) != 0)
    {
        int len = strlen(current->d_name);
        if (len > 4 && strncmp(current->d_name+len-4, ext, 4) == 0)
        {
            fileListAdd(list, current->d_name);
        }
    }
    closedir(dp);
#endif

    if (list.size > 1)
        qsort(list.files, list.size, sizeof(char*), cmp);
}
Example #2
0
void scanDirectory(const char* path, const char* ext, FileList& list)
{
	fileListClear(list);
	
#ifdef WIN32
	_finddata_t dir;
	char pathWithExt[260];
	intptr_t fh;
	strcpy(pathWithExt, path);
	strcat(pathWithExt, "/*");
	strcat(pathWithExt, ext);
	fh = _findfirst(pathWithExt, &dir);
	if (fh == -1L)
		return;
	do
	{
		fileListAdd(list, std::string(dir.name));
	}
	while (_findnext(fh, &dir) == 0);
	_findclose(fh);
#else
	dirent* current = 0;
	DIR* dp = opendir(path);
	if (!dp)
		return;
	
	while ((current = readdir(dp)) != 0)
	{
		int len = strlen(current->d_name);
		if (len > 4 && strncmp(current->d_name+len-4, ext, 4) == 0)
		{
			fileListAdd(list, current->d_name);
		}
	}
	closedir(dp);
#endif

	if (!list.empty())
		std::sort(list.begin(), list.end());
}
Example #3
0
FileList::~FileList()
{
    fileListClear(*this);
}