MFC 递归转换文件名称的大小写

需求说明:文件夹中的文件一律替换成小写

void TransferName(CString strDirPath)   
{   
	CFileFind finder;
	CString path;
	path.Format(_T("%s/*.*"),strDirPath);
	BOOL bWorking = finder.FindFile(path);
	while(bWorking)
  {
		bWorking = finder.FindNextFile();
		if(finder.IsDirectory() && !finder.IsDots())
    {//处理文件夹
			TransferName(finder.GetFilePath()); //递归文件夹
		}
		else
    {//转换文件名称大小写
      if(!finder.IsDots())
      {
        CString strOldName = finder.GetFilePath();
        CString strNewName = finder.GetFilePath();
        strNewName.MakeLower();
        CFile::Rename(strOldName,strNewName);
      }
 
		}
	}
}

调用过程:
    CString strDir = _T("d:\\log");
    TransferName(strDir);

其中的关键点:

1.

if(!finder.IsDots())

表示当前的工作目录

时间: 2024-10-10 19:35:54

MFC 递归转换文件名称的大小写的相关文章

Java递归读取文件路径下所有文件名称并保存为Txt文档

本文用递归的方法实现读取一个路径下面的所有文件并将文件名称保存到Txt文件中,亲测可用. 递归读取文件路径下的所有文件: /** * 递归读取文件路径下的所有文件 * * @param path * @param fileNameList * @return */ public static ArrayList<String> readFiles1(String path, ArrayList<String> fileNameList) { File file = new File

Linux系统下转换文件编码的方法

1.利用iconv命令进行文件内容编码转换      用法: iconv [选项...] [文件...] 有如下选项可用: 输入/输出格式规范:-f, --from-code=名称 原始文本编码-t, --to-code=名称 输出编码 信息:-l, --list 列举所有已知的字符集 输出控制:-c 从输出中忽略无效的字符-o, --output=FILE 输出文件-s, --silent 关闭警告--verbose 打印进度信息 -?, --help 给出该系统求助列表--usage 给出简

修改OpenSSL默认编译出的动态库文件名称

在 Windows 平台上调用动态链接库 dll 文件时,有两种方式:a) 隐式的加载时链接:使用 *.lib (导入库)文件,在 IDE 的链接器相关设置中加入导入库 lib 文件的名称,或在程序中加入预编译指令 #pragma comment (lib,”*.lib”).b) 显式的运行时链接.不使用 *.lib (导入库)文件,使用 Load Library(),GetProcAddress() 函数来加载动态库中的函数.要注意的是在导入库 lib 文件内部包含了其对应 dll 文件的名称

unity3d 依据指定的Assets下的目录路径 返回这个路径下的全部文件名称

using UnityEngine; using System.Collections; using System.Collections.Generic; using System.IO; <pre class="csharp" name="code"> public static List<string> nameArray = new List<string>(); /// <summary> /// 依据指定的

MFC中浏览文件和浏览目录的实现[转]

1. 浏览文件 1 void CDlgCompare::OnBnClickedBtnSel() 2 { 3 // TODO: Add your control notification handler code here 4 UpdateData(TRUE); 5 CFileDialog fileDlg(TRUE); 6 fileDlg.m_ofn.lpstrTitle="文件打开对话框"; 7 fileDlg.m_ofn.lpstrFilter="All Files(*.*

Qt中QFtp获取带有中文的文件名称出现乱码的解决方法(比较巧妙,toLatin1压缩掉了QString自动给每个英文字符加上的那些00字节)

今天研究了一下QFtp这个类,发现访问得到的文件名称中一旦出现中文,不管怎么转换编码格式,最终显示出来的始终都是乱码.于是我深入地对这一现象进行了研究.这里先简单介绍一下我的分析过程: FTP服务器在收到List指令后,会把当前文件夹的所有项目(包括文件夹和文件的名称,大小,时间,所有者等相关信息)列举出来并返回给FTP客户端.曾经在网上看到有人说过这样一句话:“ftp 在编码问题上相当笨,笨到对编码一无所知”.确实,多数FTP服务器在返回这些名称时采用的文字编码格式为ANSI.这是一个不太好的

MFC下对文件及文件夹的操作(复制、剪切、删除、创建文件夹,写文件)

一.文件夹的创建 1 void CFileOperationDlg::OnButtonMakeFolder() 2 { 3 // TODO: Add your control notification handler code here 4 UpdateData(TRUE); 5 CFileFind m_sFileFind; 6 7 if (!m_sFileFind.FindFile(m_FolderName)) 8 { 9 CreateDirectory(m_FolderName,NULL);

C#追加、拷贝、删除、移动文件、创建目录、递归删除文件夹及文件

C#追加文件 StreamWriter sw = File.AppendText(Server.MapPath(".")+"\\myText.txt"); sw.WriteLine("追逐理想"); sw.WriteLine("kzlll"); sw.WriteLine(".NET笔记"); sw.Flush(); sw.Close();C#拷贝文件 string OrignFile,NewFile; Or

获取指定路径下指定类型的文件名称,并返回可用的新名称

检查磁盘上指定目录是否已经存在同名文件(本代码是检查.jpg文件类型),存在三种情况: 1:不存在,返回查询的名称 如:输入abc,返回abc 2:存在一个名称相同的文件,返回"预定义的名称+当前日期+001"的新名称 如:存在一个叫abc.jpg的文件,输入abc,返回abc20101227001 3:存在多个前缀名相同的文件,则返回比编号最大的文件大一个编号的名称 如:存在abc.jpg,abc20101227001,abc20101227002,-,abc201012270023