检查文件名是否含不可打印字符的C++代码源码
本篇文章属于《518抽奖软件开发日志》系列文章的一部分。我在开发《518抽奖软件》(www.)的时候,有时候需要检查输入的是否是合法的文件名,文件名是否含不可打印字符等。代码如下:
程序代码:
//------------------------------------- //-1: 含不可打印字符 // 0:无效 // 1: 有效 //------------------------------------- int Tapp::is_validFlnm(const WCHAR* name) { if (!name || *name == 0) return 0; int len = 0; for (int i = 0; 1; i++) { if (name[i] == 0) { len = i; break; } if (name[i] == L'\\' || name[i] == L'/' || name[i] == L':' || name[i] == L'*' || name[i] == L'?' || name[i] == L'\"' || name[i] == L'<' || name[i] == L'>' || name[i] == L'|') return 0; WORD type = 0; GetStringTypeW(CT_CTYPE1, &name[i], 1, &type); if (type & C1_CNTRL) return -1; } if (name[len - 1] == L'.' || name[len - 1] == L' ' || name[0] == L' ') return 0; return 1; }