2012-08-09 82 views
2

我需要规范化文件名,使其不包含任何不可移植的字符。有portable_file_name但只是检查并返回布尔。我需要无论如何将给定的字符串转换为可移植的名称来创建文件。boost :: filesystem normalize filename

有没有可重用的作品?

回答

0

我假定您的意思是某些操作系统(例如Mac OS 9)上的某些字符(*:; \“?<>/\ |)可以作为文件名或路径名字符接受,但不能接受其他字符(例如Windows XP),这是正确的吗?

如果是这样,你可能应该自己进行字符转换。我过去通过使用正则表达式来查找和替换不可接受的文件名字符。破折号或东西,所有的目标操作系统上工作。然后,你可以放心地使用这些文件上都

+0

显然小功能函数可以很容易写出来。但我想避免,因为如果相同的可重复使用已经存在并且正在实践,为什么要重新创造同一轮。 – 2012-08-09 16:23:05

0

试试这个:

boost :: filesystem3 :: path portable_file_name;

portable_file_name.normalize();

相关问题