我在用:
File.Exists(filepath)
Run Code Online (Sandbox Code Playgroud)
我想要做的是将其转换为模式,因为文件名的第一部分会发生变化.
例如:文件可以是
01_peach.xml
02_peach.xml
03_peach.xml
Run Code Online (Sandbox Code Playgroud)
如何根据某种搜索模式检查文件是否存在?
.NET中是否有内置机制来匹配正则表达式以外的模式?我想使用UNIX样式(glob)通配符匹配(*=任何数字的任何字符).
我想将它用于面向最终用户的控件.我担心允许所有RegEx功能会非常混乱.
我不知道在StackOverflow上发布你自己的问题答案是否合法,但我看到没有人问过这个问题.我去寻找一个C#Glob并没有找到一个,所以我写了一个其他人可能觉得有用的.
我知道我能做到
Directory.GetFiles(@"c:\", "*.html")
Run Code Online (Sandbox Code Playgroud)
我将得到一个与*.html文件模式匹配的文件列表.
我想反过来.给定文件名abc.html,我想要一个方法,告诉我该文件名是否与*.html模式匹配.例如
class.method("abc.html", "*.html") // returns true
class.method("abc.xml", "*.html") // returns false
class.method("abc.doc", "*.?oc") // returns true
class.method("Jan24.txt", "Jan*.txt") // returns true
class.method("Dec24.txt", "Jan*.txt") // returns false
Run Code Online (Sandbox Code Playgroud)
该功能必须存在于dotnet中.我只是不知道它暴露在哪里.
将模式转换为正则表达式可能是一种方法.然而,它似乎有很多边缘情况,可能比它的价值更麻烦.
注意:问题中的文件名可能还不存在,所以我不能只包装一个Directory.GetFiles调用并检查结果集是否有任何条目.