美文网首页
常用代码

常用代码

作者: TocomPass | 来源:发表于2021-04-22 11:18 被阅读0次
  1. MFC给重复的文件重命名
CString CAudioRecorder::MakeUniqueName(const CString& m_strFile)
{
   CString strUniquePath = m_strFile;

   if (PathFileExists(m_strFile))
   {
      TCHAR szPathNoExtension[MAX_PATH];
      lstrcpy(szPathNoExtension, m_strFile);
      PathRemoveExtension(szPathNoExtension);
      LPTSTR pszExtension = PathFindExtension(m_strFile);
      const CString strFormat = _T("%s_%03d%s");

      int     i = 1;
      CString strTestName;
      CString strFixedTestName;
      int     nAppendCharsLength = 0;

      do
      {
         // Try generating the formatted string
         strTestName.Format(strFormat, szPathNoExtension, i, pszExtension);

         // Appending characters to the string may make it longer than our buffer.  In this case we need to remove
         // some characters from the end of the original filename.
         if (strTestName.GetLength() > (MAX_PATH - 1))
         {
            // Increase the running total of appended characters by the newly added appended characters
            nAppendCharsLength += strTestName.GetLength() - m_strFile.GetLength();

            // The length of the trimmed original string will be the original filepath length minus the appended
            // characters and the extension
            int nTrimFilenameLength = m_strFile.GetLength() - (nAppendCharsLength + lstrlen(pszExtension));

            // Trim the original filename
            if (nTrimFilenameLength >= 0)
            {
               szPathNoExtension[nTrimFilenameLength] = NULL;
            }

            // Re-generate the formatted string
            strFixedTestName.Format(strFormat, szPathNoExtension, i, pszExtension);
         }
         else
         {
            // If no additional characters have been appended, we can use the formatted string we already generated
            strFixedTestName = strTestName;
         }

         i++;

      } while (PathFileExists(strFixedTestName));

      strUniquePath = strFixedTestName;
   }

   return strUniquePath;
}

相关文章

  • 常用代码

    手机号输入框

  • 常用代码

    大幅度达到

  • 常用代码

    UITableView 侧滑返回执行协议方法

  • 常用代码

    记录一些平时项目中用到的代码 ES7相关 Async/Await await可以把asnyc当成一个同步函数处理,...

  • 常用代码

    1.设置渐变色

  • 常用代码

    简单代码汇总 1.jQuery定时器 2.判断是否是手机访问 3.判断是否是微信浏览器 4.低版本IE判断 5.判...

  • 常用代码

    个人经常用到又经常忘记的代码,记录在这里,不用一遍遍的去网上查。 UITableview 刷新 滑动到某个位置 U...

  • 常用代码

    异或运算加密 CRC8校验

  • 常用代码

    1.获取前一天日期,格式:2019-08-03 2.基于Gson的Json工具类 3.restTemplate添加...

  • 常用代码

    检查函数返回值的宏 输出错误信息 输出调试信息 打印信息

网友评论

      本文标题:常用代码

      本文链接:https://www.haomeiwen.com/subject/jkmxrltx.html