0
private void DeleteFiles()
{
    DirectoryInfo di = new DirectoryInfo("E:\\test");
    var files = di.GetFiles();
    var maxFile = files.Max(r => r.Length);

    foreach (FileInfo file in files.Where(r => r.Length < maxFile))
    {
        file.Delete();
    }
}
protected void Button1_Click(object sender, EventArgs e)
{
    this.DeleteFiles();
}

このコードでは、サイズに応じてファイルを削除します。たとえば、日付に応じてファイルを削除したいのですが、たとえば、昨日 5 つのファイルを作成し、今日 5 つのファイルを作成するとします。サイズが最大のファイルを除くすべてのファイルを削除します。両日ともどうすればそれができますか。前もって感謝します

4

2 に答える 2

0

あなたはこのような時間を得ることができます

DateTime creationTime = File.GetCreationTime(@"c:\file.txt");
DateTime lastWriteTime = File.GetLastWriteTime(@"c:\file.txt");
DateTime lastAccessTime = File.GetLastAccessTime(@"c:\file.txt");

http://www.csharp-examples.net/file-creation-modification-time/

また、を使用して時間を比較しますDateTime.Compare

http://msdn.microsoft.com/en-us/library/system.datetime.compare.aspx

于 2013-03-21T11:36:33.287 に答える
0

FileInfo.CreationTimeプロパティに基づいてファイルを選択し、次のようなファイルを選択できます。

private void DeleteFiles()
{
    DirectoryInfo di = new DirectoryInfo("E:\\test");
    var files = di.GetFiles();
    var maxFile = files.Max(r => r.Length);

    DateTime startDate = DateTime.Now.Date.AddDays(-1);
    DateTime endDate = DateTime.Now.Date;

    var filesToBeDeleted = files.Where(r=> (r.Length < maxFile)  
                                         && (r.CreationTime >= startDate &&
                                             r.CreationTime <= endDate));

    foreach (FileInfo file in filesToBeDeleted)
    {
        file.Delete();
    }
}

LastWriteTimeなどの FileInfo を使用して、他の DateTime プロパティに基づいて選択を行うことができます。また、基準に独自の開始日と終了日を指定することもできます。

于 2013-03-21T11:42:59.640 に答える