void TraversingResource::GetResFiles(LPCTSTR folder_path, const vector<LPCTSTR> *ex_names, vector<TCHAR *> &files, bool clean /* = true */) { if (clean) files.clear(); /* lambda 表达式: 如果是需求的文件类型,返回true */ auto IsExName = [ex_names](LPCTSTR ex_name) -> bool { if (ex_names->empty()) return true; for (auto iter : *ex_names) { if (!lstrcmp(ex_name, iter)) return true; } return false; }; for (FirstFile(folder_path); IsOK(); NextFile()) { LPCTSTR ex_name = ::PathFindExtension(GetCurFile().cFileName); if ( !(GetCurFile().dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) // 不是文件夹 && IsExName(ex_name)) { // 扩展名符合 TCHAR *file_name = new TCHAR[MAX_PATH]; lstrcpy(file_name, GetCurFile().cFileName); files.push_back(file_name); } } }
int GDocApp<OptionsFmt>::OnCommand(int Cmd, int Event, OsView Window) { switch (Cmd) { case IDM_SAVE: { if (!GetCurFile()) { GMru::OnCommand(IDM_SAVEAS); return 0; } else { _SaveFile(GetCurFile()); return 0; } break; } case IDM_CLOSE: { if (SetDirty(false)) _Close(); break; } case IDM_EXIT: { LgiCloseApp(); break; } } GMru::OnCommand(Cmd); return 0; }