当前位置:C++技术网 > 资讯 > 工作日记:创建的文件的文件名不能包含特殊字符

工作日记:创建的文件的文件名不能包含特殊字符

更新时间:2015-06-25 15:32:43浏览次数:1+次

    2013年12月16日 星期一  阴 
    上午碰到一个问题,就是不能将过滤条件(开始时间等)含在生成的压缩文件名里。试着各种格式类型的转换,始终不得而解。有时候竟然根本就不生成压缩文件。同时,文件已经存在时生成导出的数据文件时保存出错。
    下午突然想到另一个想法,那就是,既然直接生成文件名不行,那我就等文件生成好后,再更名就可以了。虽然饶了点,不过可能解决问题。因为直接指定文件名可以的。一个可能就是文件名传递的类型转换问题,另一个可能就是文件名长度问题。类型转换始终解决不了问题,然后就怀疑文件名长度的问题。结果还是没查出来问题的所在。然后就怀疑文件名含有空格的问题,去掉空格依然出错,然后就怀疑了可能是冒号引起的。猜想可能是系统的字符,所以加上一个转义字符,结果仍然出错。最后,就直接去掉冒号,不过长度用其他字符填充,结果更名时结果成功了。那么就肯定了问题,就是冒号引起的。然后想到,既然更名可以的话,那么创建压缩文件可能也是可以的。然后就试了一下,结果创建果然成功了。因为我想,这个问题很类似,如果直接创建就可以,那么就可能省去一步。回头想想,windows系统好像文件名取名时不能包含几个特殊字符的,然后在桌面创建一个记事本,在文件名中输入冒号,提示出来了,【/\:*?"<>|】这几个符号是不能含在文件名中的,到此,一切都水落石出了。之前的调试,跟踪进压缩文件的创建,文件名字符串中都是正确的。可以肯定,传递进去的文件名并没有错,一切的一切,都是文件名不能含冒号。