bool Anitomy::RemoveExtensionFromFilename(string_t& filename, string_t& extension) { const size_t position = filename.find_last_of(L'.'); if (position == string_t::npos) return false; extension = filename.substr(position + 1); const size_t max_length = 4; if (extension.length() > max_length) return false; if (!IsAlphanumericString(extension)) return false; // TODO: Add an option for this auto keyword = StringToUpperCopy(extension); if (!keyword_manager.Find(kElementFileExtension, keyword)) return false; filename.resize(position); return true; }
bool Anitomy::RemoveExtensionFromFilename(string_t& filename, string_t& extension) const { const size_t position = filename.find_last_of(L'.'); if (position == string_t::npos) return false; extension = filename.substr(position + 1); const size_t max_length = 4; if (extension.length() > max_length) return false; if (!IsAlphanumericString(extension)) return false; string_t keyword = keyword_manager.Normalize(extension); if (!keyword_manager.Find(kElementFileExtension, keyword)) return false; filename.resize(position); return true; }