请教如何编程修改文件名呢?已知文件名含有非法字符
mfc吧
全部回复
仅看楼主
level 1
__阿_信_ 楼主
我的程序运行中需要修改一个文件名称,但是文件名称含有非法字符,用了一些方法总是不成功,请教大家如何处理呢?
2024年04月22日 01点04分 1
level 11
文件名,例如?
2024年04月22日 04点04分 2
比如这个文件名:SQPE-GDS-256201-4100-0001 RevA(丙烯腈).dwg,它里面有个问号,我要打开这个文件就会失败,手工改名就可以,您能帮我看看怎么解决吗?我的想法就是用程序先改名在打开,可是改名不成功
2024年04月24日 08点04分
你用findfile试试(比如*.dwg作为通配符查找),能查找到就能得到真实文件名到变量里,理论上就能对其操作
2024年04月24日 08点04分
@星玥灬 文件能找到,就是到打开那步出问题了,应该是打开函数不支持有非法字符的文件名导致的
2024年04月24日 08点04分
回复 __阿_信_ :你的文件来源?传一个文件来看看?[email protected]
2024年04月24日 08点04分
level 11
int myrename(char *oldfilename,char *newfilename)
{
char buff[1024];
sprintf(buff,"cmd /c rename %s %s",oldfilename,newfilename);
system(buff);
return 0;
}
这样子可以,你试一下。
或者用CreateProcess隐藏cmd窗口运行即可,注意要等待cmd程序运行完毕:
WaitForSingleObject(sei.hProcess, INFINITE);
2024年04月24日 09点04分 3
我试过了,rename或者copy都不行,他们应该都有检查文件名合法性了
2024年04月25日 02点04分
这个真的好用,问题已解决,多谢指教~
2024年04月25日 09点04分
1