Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/332.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 文件匹配模式如何使用星号精确工作?_C#_File_Pattern Matching_Matching - Fatal编程技术网

C# 文件匹配模式如何使用星号精确工作?

C# 文件匹配模式如何使用星号精确工作?,c#,file,pattern-matching,matching,C#,File,Pattern Matching,Matching,我有以下文件: C:\files\file1.dll C:\files\file2.dll C:\files\sample\sample1.dll c:\files\sample\sample2.dll c:\files\book\book1.dll c:\files\book\book2.dll c:\files\book\comic\comic1.dll c:\files\book\comic\comic2.dll 模式1是*\*.dll,模式2是*\comic\*.dll,模式3是boo

我有以下文件:

C:\files\file1.dll
C:\files\file2.dll
C:\files\sample\sample1.dll
c:\files\sample\sample2.dll
c:\files\book\book1.dll
c:\files\book\book2.dll
c:\files\book\comic\comic1.dll
c:\files\book\comic\comic2.dll

模式1是
*\*.dll
,模式2是
*\comic\*.dll
,模式3是
book\*\*.dll
。哪些文件应该匹配
pattern1
pattern2
pattern3
,第一个模式应该匹配通配符匹配中的所有内容。你基本上是在说

包含
\
并以
.dll

第二个应该和最后两个相匹配

包含
\comic\
并以
.dll

最后一个应该不匹配

book\
包含
\
开头,以
.dll
结尾

当然,这是用于这里描述的模式匹配,而不是正则表达式

glob
世界中,并不完全是这样:

**匹配任何字符,包括正斜杠/

*匹配除正斜杠以外的任何字符(仅匹配文件或目录名)

所以这样想吧。第一个图案将仅与第一个和第二个图案匹配。通过使用您所说的双**,我还关心子目录


非常好的解释和更多的例子:

对不起,模式1是*\*.dll,模式3是book\*\*.dllThanks,用于快速回复,但我认为是*表示指定源文件夹中的所有文件。**是指指定源文件夹中的所有文件以及根据的所有子文件夹中的所有文件。所以,通过使用azure copy任务,pattern1是否匹配-file1.dll、file2.dll、sample1.dll、sample2.dll、book1.dll和book2.dll?模式3匹配-book1.dll、book2.dll、comic1.dll、comic2.dll,以便尝试使用匹配。好的,现在我知道你想要达到的目标了,我可能会帮助你更多。谢谢,理解一点。但是C:\files\*\*.dll模式如何处理上述文件呢?它应该返回第2、第3、第4和第5行。不是第一个或最后两个.Super和最后一个疑问-c:\files\***\.dll模式匹配所有文件,但为什么c:\files\***.dll模式不匹配1到6行,而只匹配3到6行