我想要一个可能在Path Functions中的函数,该函数将检查文件名是否有效。有效,是指字符串中存在的字符是否全部有效(例如,没有?
,>
等等)。但是可悲的是,没有功能。通过网络浏览,等等,我发现很少的技术,我都不喜欢这些技术,也没有发现可靠的技术。
%TEMP%
系统路径中。如果创建失败,则文件名无效(可能)。否则,它是有效的(并因此删除文件)。?:*>
)函数的扩展形式将是检查所有无效名称(例如AUX
,CON
等),但这不是问题(至少现在是这样)。
有没有我可能会错过的任何有记录/未记录的函数,可以可靠地检查文件名(不是路径名)是否有效。
编辑:PathCleanupSpec
现在不推荐使用该功能,不再支持该功能。有关详细信息,请参阅Requirements
链接页面末尾的部分。
感谢Connor的功能。对于其他读者,函数名称为PathCleanupSpec
。使用它我实现了以下内容:
bool IsLegalFileName(LPCWSTR filename)
{
WCHAR valid_invalid[MAX_PATH];
wcscpy_s(valid_invalid, filename);
int result = PathCleanupSpec(nullptr, valid_invalid);
// If return value is non-zero, or if 'valid_invalid'
// is modified, file-name is assumed invalid
return result == 0 && wcsicmp(valid_invalid, filename)==0;
}
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句