对于Directory.GetFiles,?表示“正好零个或一个字符”。另一方面,您可以使用DirectoryInfo.GetFiles,为哪个?表示“正好一个字符”(显然是你想要的)。
编辑:
完整代码:
string[] resultFileNames = (from fileInfo in new DirectoryInfo(@"C:\temp").GetFiles("????????????.tif") select fileInfo.Name).ToArray();
您可能可以跳过 ToArray 并让 resultFileNames 成为IEnumerable<string>
.
人们报告这在 MS .NET 上对他们不起作用。下面的确切代码适用于我在 Ubuntu Hardy 上的 Mono。我同意让两个相关的类使用不同的约定真的没有意义。但是,这就是文档(上面链接)所说的,并且 Mono 符合文档。如果微软的实现没有,他们有一个错误:
using System;
using System.IO;
using System.Linq;
public class GetFiles
{
public static void Main()
{
string[] resultFileNames = (from fileInfo in new DirectoryInfo(@".").GetFiles("????????????.tif") select fileInfo.Name).ToArray();
foreach(string fileName in resultFileNames)
{
Console.WriteLine(fileName);
}
}
}