gpt4 book ai didi

c++ - Windows 文件名 - 如何检查文件名是否有效?

转载 作者:可可西里 更新时间:2023-11-01 09:28:47 29 4
gpt4 key购买 nike

我想要一个函数,可能在 Path Functions 中,这将检查文件名是否有效。所谓有效,我的意思是字符串中的字符是否全部有效(例如,没有 ?> 等)。但遗憾的是,没有任何功能。浏览网络,然后,我发现了很少的技术,没有一个是我喜欢的,也没有一个是可靠的。

  • 使用正则表达式检查文件名的内容。
  • 创建文件名,可能在系统的 %TEMP% 路径中。如果创建失败,则文件名(可能)无效。否则,它是有效的(因此,删除该文件)。
  • 编写一个函数,检查文件名中是否存在无效字符(例如 ?:*>)

功能的扩展形式是检查所有无效名称(如 AUXCON 等),但这不是问题(至少目前如此)。

是否有任何我可能错过的已记录/未记录的函数,这些函数可以可靠地检查文件名(不是 路径名)是否有效。

最佳答案

编辑:PathCleanupSpec功能现已弃用,不再受支持。有关详细信息,请参阅链接页面末尾的要求部分。


感谢 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;
}

关于c++ - Windows 文件名 - 如何检查文件名是否有效?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26928617/

29 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com