// DirPath should by a directory with a trailing slash. // Returns all files in the directory, already prepended by root. // Subdirectories will have a trailing slash. // All files and directories that start with . are skipped. Array<String> DirectoryFileList( const char * DirPath ) { Array<String> strings; DIR * dir = opendir( DirPath ); if ( dir != NULL ) { struct dirent * entry; while ( ( entry = readdir( dir ) ) != NULL ) { if ( entry->d_name[ 0 ] == '.' ) { continue; } if ( entry->d_type == DT_DIR ) { String s( DirPath ); s += entry->d_name; s += "/"; strings.PushBack( s ); } else if ( entry->d_type == DT_REG ) { String s( DirPath ); s += entry->d_name; strings.PushBack( s ); } } closedir( dir ); } SortStringArray( strings ); return strings; }
void CFunctionPage::LoadGeneralResources() { m_GeneralResources.RemoveAll(); m_pResManager->GetMenuIds(m_GeneralResources); m_pResManager->GetAcceleratorIds(m_GeneralResources); m_pResManager->GetToolbarIds(m_GeneralResources); //сортировка SortStringArray(m_GeneralResources); //удаление повторяющихся идентификаторов CString PrevWord; for (int i = (int)m_GeneralResources.GetCount() - 1; i >= 0; i--) { if (m_GeneralResources[i] == PrevWord) { m_GeneralResources.RemoveAt(i); } else { PrevWord = m_GeneralResources[i]; } } }