本文作者:StubbornHuang
版权声明:本文为站长原创文章,如果转载请注明原文链接!
原文标题:C++ – 使用C++标准库过滤Windows文件名中的非法字符
原文链接:https://www.stubbornhuang.com/632/
发布于:2020年01月09日 17:32:04
修改于:2020年01月09日 17:32:04

1 使用C++标准库过滤Windows文件名中的非法字符
在windows系统上有一些字符识别是不能存在于文件名之中的,不然会导致创建文件失败,所以写了一个过滤函数过滤文件名中的非法字符:
代码示例:
template <typename T>
bool MatchInvalidCharPredicate(const T& t)
{
unsigned char t1 = (unsigned char)t;
if (t1 <= 0x1F
|| t1 == 0x7F
|| t1 == 0x5C // \
|| t1 == 0x2F // /
|| t1 == 0x3A // :
|| t1 == 0x2A // *
|| t1 == 0x3F // ?
|| t1 == 0x22 // "
|| t1 == 0x3C // <
|| t1 == 0x3E // >
|| t1 == 0x7C // |
)
{
return true;
}
return false;
}
template<typename C, class T>
void FilterInvalidFileNameChar(T& c)
{
std::replace_if(c.begin(), c.end(), MatchInvalidCharPredicate<C>, L'_');
}
void TestFilterInvalidFileNameChar()
{
std::wstring wss(L"/as中国fasdfas?asdfas*dfa.txt");
FilterInvalidFileNameChar<wchar_t>(wss);
std::cout << "======TestFilterInvalidFileNameChar=================" << std::endl;
std::wcout << Unicode2Ansi(wss.c_str()) << std::endl;
}
当前分类随机文章推荐
- C++ - 判断两个字符串是否相等方法总结 阅读151次,点赞0次
- C++ - 得到字符串中某个字符串出现的个数 阅读3587次,点赞2次
- C++ - 拷贝构造函数与拷贝构造函数调用时机 阅读135次,点赞0次
- C++ - Map中存储动态指针时正确释放内存 阅读3435次,点赞0次
- C++ - Windows获取电脑上摄像头设备数目、名字以及id 阅读81次,点赞0次
- C++ - 使用标准库实现事件和委托,信号和槽机制 阅读164次,点赞0次
- C++ - 常用的C++命令行参数解析第三方库 阅读1635次,点赞1次
- C++11 - 封装std::thread,增加子线程启动、暂停、唤起、停止功能 阅读3603次,点赞6次
- C++ - 使用模板和智能指针构建一个双向链表工具类 阅读638次,点赞0次
- C++ 回调函数 阅读2763次,点赞0次
全站随机文章推荐
- Pytorch - 为什么要设置随机数种子? 阅读319次,点赞0次
- 资源分享 - Physics for Game Programmers 英文高清PDF下载 阅读1674次,点赞0次
- 资源分享 - Mathematics for Computer Graphics , Second Edition 英文高清PDF下载 阅读1003次,点赞0次
- 中国男篮 - 2023年男篮世界杯亚洲区预选赛中国男篮比赛录像 阅读481次,点赞0次
- 计算机图形学 - Hemisphere Lighting 半球光 阅读346次,点赞2次
- 资源分享 - Data Structures and Algorithms for Game Developers 英文高清PDF下载 阅读1370次,点赞0次
- 资源分享 - Ray Tracing Gems II - Next Generation Real-Time Rendering with DXR, Vulkan, and OptiX-Apress 英文高清PDF下载 阅读1714次,点赞0次
- 资源分享 - Ray Tracing - The Rest of Your Life英文高清PDF下载 阅读2140次,点赞0次
- 资源分享 - 深度学习的数学 (涌井良幸 涌井贞美著) 高清PDF下载 阅读3806次,点赞2次
- 资源分享 - Artificial Intelligence for Games , First Edition 英文高清PDF下载 阅读793次,点赞0次
评论
164