最近遇到这个需求,在文件后缀前增加或者删除".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();
}

更多的交流,欢迎加入 暗号271888395

相关文章:

  • 2022-12-23
  • 2021-10-12
  • 2022-12-23
  • 2021-11-12
  • 2021-06-29
  • 2022-12-23
  • 2022-12-23
  • 2021-09-30
猜你喜欢
  • 2021-10-19
  • 2021-11-29
  • 2021-12-20
  • 2021-12-16
  • 2021-10-29
  • 2022-12-23
相关资源
相似解决方案