次のコードは、FileNotFoundException を生成します (.NET 2.0 を使用)。
using System;
using System.Collections.Generic;
using System.Text;
using System.IO;
namespace LazyFileInfoTest
{
class Program
{
static void Main(string[] args)
{
File.WriteAllText("Test.txt", "Hello World!");
DirectoryInfo di = new DirectoryInfo(".");
FileInfo[] files = di.GetFiles();
File.Delete("Test.txt");
foreach (FileInfo fi in files)
{
Console.WriteLine(string.Format("{0} Last Modified: {1}", fi.Name, fi.LastWriteTime));
Console.WriteLine(string.Format("{0} Last Modified: {1}", fi.Name, fi.LastAccessTime));
//Exception when we reach test.txt
Console.WriteLine(string.Format("{0} length is: {1}", fi.Name, fi.Length));
}
}
}
}
Length プロパティが遅延しているようです。何か理由はありますか?他のプロパティには当てはまらないため、これは矛盾しているように見えます。(反例については、.NET FileInfo.LastWriteTime & FileInfo.LastAccessTime が間違っているを参照してください。)
ありがとう。