在開發(fā)“518抽獎軟件”的時候,需要將每個獎項的結(jié)果保存為文件,需要檢查獎項名是否是合法的文件名。 傳統(tǒng)的檢查幾個非法字符的方法不夠全面,所以寫了一個認為比較全面的代碼,源碼如下。
目前創(chuàng)新互聯(lián)已為近1000家的企業(yè)提供了網(wǎng)站建設、域名、網(wǎng)絡空間、網(wǎng)站托管、企業(yè)網(wǎng)站設計、宿豫網(wǎng)站維護等服務,公司將堅持客戶導向、應用為本的策略,正道將秉承"和諧、參與、激情"的文化,與客戶和合作伙伴齊心協(xié)力一起成長,共同發(fā)展。
//比傳統(tǒng)代碼多出了:
//1. 檢查tab字符,tab也不是合法字符,在Windows10下測試,tab字符作為文件名有問題
//2. 檢查最后的字符是否是 空格 和 .
//
BOOL Tapp::is_validFilename(const WCHAR* name)
{
if (!name || *name == 0) return FALSE;
if (wcschr(name, L'\\') || wcschr(name, L'/') || wcschr(name, L':') ||
wcschr(name, L'*') || wcschr(name, L'?') || wcschr(name, L'\"') ||
wcschr(name, L'<') || wcschr(name, L'>') || wcschr(name, L'|') || wcschr(name, L'\t'))
{
return FALSE;
}
int len = wcslen(name);
if (name[len - 1] == L'.' || name[len - 1] == L' ')
return FALSE;
return TRUE;
}