2

ディレクトリを検索して、過去 x 日間のファイルを検索したいのですが、現在、2 日以上検索しても、関数は常に同じファイル (2 日前に作成したファイル) を返します。

decimal days = nudDays.Value; 
//read the number from NumericUpDown comtrol

private void setDays() 
//each change in NumericUpDown comtrol will change days variable
{
    if (nudDays.Value != 0)
    {
        days = nudDays.Value;    
    }
    else
    {
        days = decimal.MaxValue;
    }            
}

ファイルが過去 x 日間 (days 変数) に作成されたかどうかを確認します。

public bool checkFileCreationDate(FileInfo fileInfo)
{
    double num = (double)nudDays.Value * -1;
    if (fileInfo.CreationTime > DateTime.Now.AddDays(num))
    {
        return true;
    }

    return false;
}
4

3 に答える 3

2

これは、探している Date 値に linq pass を使用して行うことができます

Date somedate;
var filterFiles = from file in directoryInfo.GetFiles() 
            where file.CreationTime > somedate
            select file;
于 2012-12-26T19:07:20.300 に答える
0

期間が 2 日を超える場合は、2 日前に作成されたファイルが含まれます。「4 日」は実際には間隔 [now-4d .. now] に変換されるため、問題ありません。

テスト ファイルを除外するには、日数を 1 に減らす必要があります。

多くの場合、fileInfo.CreationTime と fileInfo.LastWriteTime は異なることに注意してください。LastWriteTime をフィルタリングすることができます。

于 2012-12-26T19:08:23.050 に答える