最近遇到这个需求,在文件后缀前增加或者删除".tif"。
如下图所示,功能非常简单,特此记录主要代码。
代码如下:
#include "main.h"
_tstring GetNewFileName(_tstring strFileName)
{
_tstring strPathName(strFileName);
_tstring strNewName;
/************************************************************************/
_tstring strName = CStdStr::GetNameOfFile(strPathName, false);
_tstring strTif = CStdStr::ToUpperLower(CStdStr::GetSuffixOfFile(strName));
if (strTif == _T(".tif"))
{
strNewName = CStdStr::AddSlashIfNeeded(CStdStr::GetDirOfFile(strPathName)) + CStdStr::GetNameOfFile(strName, false) + CStdStr::GetSuffixOfFile(strPathName);
}
else
{
strNewName = CStdStr::AddSlashIfNeeded(CStdStr::GetDirOfFile(strPathName)) + strName + _T(".tif") + CStdStr::GetSuffixOfFile(strPathName);
}
/************************************************************************/
return strNewName;
}
size_t ProcessVectorFiles(std::vector<_tstring>& vRrlxFiles)
{
const size_t argc = vRrlxFiles.size();
for (int i = 0; i < argc; ++i)
{
_tstring strFile = vRrlxFiles[i];
//全部变成小写方便比较
//strFile = CStdStr::ToUpperLower(strFile);
if (CStdFile::IfAccessFile(strFile))
{
_tstring strOldFile(strFile);
_tstring strNewFile(GetNewFileName(strFile.c_str()));
rename(CStdStr::ws2s(strOldFile).c_str(), CStdStr::ws2s(strNewFile).c_str());
vRrlxFiles[i] = strNewFile;
}
}
return vRrlxFiles.size();
}
更多的交流,欢迎留言。