一尘不染

如何在Windows下检查给定的字符串是否为合法/有效的文件名?

c#

我想在我的应用程序中包括一个批处理文件重命名功能。用户可以键入目标文件名模式,并且(在替换模式中的一些通配符之后)我需要检查它是否将在Windows下成为合法文件名。我尝试使用正则表达式,[a-zA-Z0-9_]+但它不包含来自多种语言的许多国家特定字符(例如变音符号等)。做这种检查的最好方法是什么?


阅读 311

收藏
2020-05-19

共1个答案

一尘不染

您可以从Path.GetInvalidPathChars和获取无效字符列表GetInvalidFileNameChars

UPD: 有关如何在正则表达式中使用它们的信息,请参阅Steve
Cooper的建议

UPD2: 请注意,根据MSDN中的“备注”部分,“不能保证从此方法返回的数组包含文件和目录名称中无效的完整字符集。”
sixlettervaliables提供的答案会涉及更多细节。

2020-05-19