Directory.GetFilesの場合、?「正確に0または1文字」を意味します。一方、DirectoryInfo.GetFilesを使用することもできますが、これには?「正確に1文字」(明らかにあなたが望むもの)を意味します。
編集:
完全なコード:
string[] resultFileNames = (from fileInfo in new DirectoryInfo(@"C:\temp").GetFiles("????????????.tif") select fileInfo.Name).ToArray();
おそらくToArrayをスキップして、resultFileNamesを。にすることができますIEnumerable<string>
。
人々は、これがMS.NETでは機能しないと報告しています。以下の正確なコードは、UbuntuHardyのMonoで動作します。2つの関連するクラスに異なる規則を使用させることは実際には意味がないことに同意します。ただし、それはドキュメント(上記のリンク)が言っていることであり、Monoはドキュメントに準拠しています。Microsoftの実装にない場合は、バグがあります。
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);
}
}
}