读书人

VC++ 遍历文件时WCHAR 对文件重命名产

发布时间: 2012-06-14 16:00:31 作者: rapoo

VC++ 遍历文件时WCHAR 对文件重命名产生错误
我使用findfirstfile来遍历文件名,得到的cFileName返回的是WCHAR数组,我发现WCHAR极难处理,一般的数组操作函数与string函数都不能对其进行操作,而又不能将WCHAR转换为char(因为会丢失信息,或者不能显示中文)在使用rename函数对文件重命名时,其函数又必须为char[],我查了一下午没找到解决之道,请问有没有解决的办法?
我看同学的程序,发现其cfilename返回的是char数组,这是为什么?返回值跟设定有关吗?

[解决办法]
system("dir /b /a-d c:\\*.* >d:\\allfiles.txt");
//读文件d:\\allfiles.txt的内容即C:\\下所有文件的名字
system("dir /b /ad c:\\*.* >d:\\alldirs.txt");
//读文件d:\\alldirs.txt的内容即C:\\下所有子目录的名字
请记住,能用shell命令获取文件、文件夹信息或者操作文件、文件夹最好用shell命令获取或者操作,而不要用各种API获取或者操作,因为当遇到非法文件夹名或非法文件名或非法文件长度、非法文件日期、压缩文件、链接文件、稀疏文件……等各种意料之外的情况时,API会处理的不全面或陷入死循环,而shell命令不会。

读书人网 >C++

热点推荐