c# - Directory.GetFiles(...) 模式 *.???返回有趣的结果

标签 c# .net directory filenames

我正在使用以下代码:

var di = new DirectoryInfo("path/to/dir");
var matchingFiles = di.GetFiles("*.???);

正如预期的那样,文件如

  • 文件.bat
  • test.1.xml
  • a.txt.txt

被退回。然而,有一些有趣的结果。作为the MS-documentation提到,短名称也被搜索。我还找到了the information about the dot-selector working in .NET 4+ .我仍然看不到这解释了以下结果:

  • 文件1.xml.2
  • 没有扩展名的文件

Q1:如何解释这个结果。

Q2:如何实现模式*.[3个任意字符]的匹配。

最佳答案

Q2) 您可以使用 LINQPath class相反:

var files = Directory.EnumerateFiles("path/to/dir", "*.*")
    .Where(file => Path.GetExtension(file).TrimStart('.').Length == 3);

关于c# - Directory.GetFiles(...) 模式 *.???返回有趣的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35647354/

相关文章:

c# - ASP.NET Core MemoryCache - 在使用时更新项目

.net - EF 4.3.1和EF 5.0 DbSet.Local比实际的数据库查询要慢

.net - .NET 4.5 中 SecurityTokenCache 的替代品

c# - WebBrowser 和 javascript window.close()

检查目录中的项目是否是 C 中的文件夹

c# - 在 SQL Server 2005 上执行 SSIS 包

c# - 运算符重载和继承 c#

c# - 当存在非静态、更适合的方法时,如何使用动态参数调用静态方法?

c# - 如何关闭已在目录中打开的文件

Powershell - 监控文件夹内容