アプリケーションで問題が発生しています。DateTime に基づいてフォルダーからすべてのファイルを取得したいのですが、Directory.GetFile() または C# を介したその他の組み込み関数で可能ですか?
ありがとうシャシャンク
アプリケーションで問題が発生しています。DateTime に基づいてフォルダーからすべてのファイルを取得したいのですが、Directory.GetFile() または C# を介したその他の組み込み関数で可能ですか?
ありがとうシャシャンク
System.IO.FileSystemInfo.CreationTime を使用した非常に良い例がここにありますhttp://msdn.microsoft.com/en-us/library/system.io.filesysteminfo.creationtime.aspx
Linq ソリューション
string startFolder = @"c:\program files\Microsoft Visual Studio 9.0\";
System.IO.DirectoryInfo dir = new System.IO.DirectoryInfo(startFolder);
IEnumerable<System.IO.FileInfo> fileList = dir.GetFiles("*.*", System.IO.SearchOption.AllDirectories);
IEnumerable<System.IO.FileInfo> fileQuery =
from file in fileList
where (file.CreationTime <= maxdate//replac eyour date here
&& file.CreationTime >= mindate)//replac eyour date here
orderby file.CreationTime
select file;
このようにファイル時間を確認できます
string fileName = @"C:\MyPath\MyFile.txt";
if (File.Exists(fileName))
{
label_CreationTime.Text =
File.GetCreationTime(fileName).ToString();
label_LastAccess.Text =
File.GetLastAccessTime(fileName).ToString();
label_LastWrite.Text =
File.GetLastWriteTime(fileName).ToString();
}
したがって、直接各ファイルをチェックするには、次のようなことをする必要があります
string[] filePaths = Directory.GetFiles(@"c:\MyDir\");
foreach(string fileName in filePaths )
{
Console.Writeln(fileName );
Console.Writeln(File.GetCreationTime(fileName).ToString());
Console.Writeln(File.GetLastAccessTime(fileName).ToString());
Console.Writeln(File.GetLastWriteTime(fileName).ToString());
}
FileInfoを取得し、作成日/変更日を確認することは、私が考えることができるオプションです
あなたが試すことができます
var d = new DirectoryInfo(dirPath);
var filesInfo d.GetFiles().OrderBy(x => x.LastAccessTime);
または、日時も照会できます
var filesInfo = d.GetFiles().Where(x=>x.LastAccessTime > datetTime);
昨日作成されたすべてのファイルにアクセスするには、必要な最小値/最大値を設定して、Linq で次のようにします。
作成ではなくファイルの変更を表示する場合は、次CreationTime
のように置き換えます。LastWriteTime
var targetDirectory = "Put your dir here";
var minDate = DateTime.Today.AddDays(-1);
var maxDate = DateTime.Today.AddSeconds(-1);
try
{
var dir = new Directory(targetDirectory);
foreach (var file in dir.GetFiles().Where(f => f.CreationTime >= minDate
&& f.CreationTime <= maxDate))
{
// Do something with file.
Console.WriteLine("File : {0}", file.FullName);
}
}
catch( Exception e )
{
// Handle access exceptions.
}
プロパティでオブジェクトを使用Directory.EnumerateFiles
およびフィルタリングできます。次に例を示します。FileInfo
LastWriteTime
var minimumDate = new DateTime(2012, 1, 1);
var directory = new DirectoryInfo(@"D:\MyFolder");
var files = directory.EnumerateFiles("*", SearchOption.AllDirectories)
.Where(f => f.LastWriteTime >= minimumDate);
これは をスローする可能性があることに注意してくださいUnauthorizedAccessException
。