先ほどの日記「いつもリビルドの恐怖」を書いた後に作った、
未来時刻のタイムスタンプを持つファイルをリストアップするツールのソースを公開しておきます。
C# Visual Studio 2008で作成。
using System;
using System.Collections.Generic;
using System.Text;
namespace FindFileFromFuture
{
class Program
{
System.DateTime nowTime = System.DateTime.Now;
public System.DateTime NowTime
{
get { return this.nowTime; }
set { this.nowTime = value; }
}
static void Main(string[] args)
{
Program p = new Program();
Console.WriteLine("Now Time: " + p.NowTime);
Int64 fileNum = p.FindFileFromFuture(@".\");
Console.WriteLine("Number of Checked file: " + fileNum);
Console.WriteLine("Push any key");
Console.ReadKey();
}
public Int64 FindFileFromFuture(String directory)
{
Int64 fileNum = 0;
String[] fileNames = System.IO.Directory.GetFiles(directory);
foreach (String fileName in fileNames)
{
System.IO.FileInfo fileInfo = new System.IO.FileInfo(fileName);
DateTime lastWriteTime = fileInfo.LastWriteTime;
TimeSpan timeSpan = this.nowTime.Subtract(lastWriteTime);
if (timeSpan.Ticks < 0)
{
Console.WriteLine("Found: " + fileName);
Console.WriteLine("\tLast write time: " + lastWriteTime);
}
fileNum++;
}
String[] childDirectories = System.IO.Directory.GetDirectories(directory);
foreach (String childDirectory in childDirectories)
{
fileNum += FindFileFromFuture(childDirectory);
}
return fileNum;
}
}
}