s.substr(pos, len)
- 返回值: string,包含s中从pos开始的len个字符的拷贝(pos的默认值是0,len的默认值是s.size() - pos,即不加参数会默认拷贝整个s)
- 异常 :若pos的值超过了string的大小,则substr函数会抛出一个out_of_range异常;若pos+n的值超过了string的大小,则substr会调整n的值,只拷贝到string的末尾
获取文件名后缀(判断文件格式)
string Analyser::getFileSuffix(const string& fileName)
{
return fileName.substr(fileName.find_last_of('.') + 1);
}
判断文件格式是否合法
bool GradeManager::fileNmaeisAvaliable(const string &fileName)
{
// 文件名中不能包含\/:*?"<>|这些字符
regex regExpress("[\\/:*?\"<>|]");
bool pointValid = !std::regex_search(fileName, regExpress);
string suffixx = aser->getFileSuffix(fileName);
bool suffixValid = availableFileType->find(suffixx);
return pointValid && suffixValid;
}