C# 如何根据日期时间比较两个文件?

C# 如何根据日期时间比较两个文件?,c#,C#,我需要根据日期时间比较两个文件。我需要检查这两个文件是否使用相同的日期时间创建或修改。我用这个代码来读取文件的日期时间 string fileName = txtfile1.Text; var ftime = File.GetLastWriteTime(fileName).ToString(); string fileName2 = txtfile2.Text; var ftime2 = File.GetLastWriteTime(fileName2).ToString(); 有什么建议吗?好

我需要根据日期时间比较两个文件。我需要检查这两个文件是否使用相同的日期时间创建或修改。我用这个代码来读取文件的日期时间

string fileName = txtfile1.Text;
var ftime = File.GetLastWriteTime(fileName).ToString();
string fileName2 = txtfile2.Text;
var ftime2 = File.GetLastWriteTime(fileName2).ToString();
有什么建议吗?

好吧,我们做什么呢

ftime == ftime2
??不过,不需要ToString,最好只按原样比较日期时间。

不要调用
日期时间返回的
值上的
ToString()
。改为这样做:

DateTime ftime = File.GetLastWriteTime(fileName);
DateTime ftime2 = File.GetLastWriteTime(fileName2);
然后您可以比较
ftime
ftime2

if (ftime == ftime2)
{
   // Files were created or modified at the same time
}
GetLastWriteTime()返回DateTime对象,因此可以执行以下操作:

if (File.GetLastWriteTime(filename).CompareTo(File.GetLastWriteTime(filename2)) == 0)
测试它们是否具有相同的时间戳


有关比较DateTime对象的更多提示,请参阅。

文件系统中存储的上次修改时间的精度在不同的文件系统(VFAT、FAT、NTFS)之间有所不同。因此,最好为此使用epsillon环境,让用户选择一个合理的值,或者根据涉及的文件系统选择一个值

bool isMatched=false;
int ia = string.Compare(ftime.ToString(), ftime2.ToString());
if (string.Compare(ftime.ToString(), ftime.ToString()) == 0)
    isMatched = true;
else
    isMatched = false;


是否将从GetLastWriteTime()接收的日期时间转换为字符串并比较日期?喜欢如果(ftime==ftime2)…你是在检查它们是否是相同的日期,还是它们也必须是相同的小时、分钟和秒?@jlafay:检查相同的小时,分钟和秒确定两个文件夹中有多个文件,我需要比较这些文件是否与datetimeFor OP信息匹配:这表明比较两个DateTimes符合您的需要。确定两个文件夹中有多个文件,我需要比较这些文件是否与datetime@bala3569这听起来像是一场灾难完全不同的问题;你能提供一些更详细的信息或发布另一个问题吗?这个解决方案不适用于每个文件系统-如果你有一个FAT或VFAT文件系统,你就不能使用它-这通常用于U盘-请参阅下面的我的回答,以获得更通用的解决方案。好的,我在两个文件夹中有多个文件,我需要比较这些文件与datetime匹配
double epsillon = 2.0
DateTime lastUpdateA = File.GetLastWriteTime(filename);
DateTime lastUpdateB = File.GetLastWriteTime(filename2);

if (Math.Abs(Math.Round((lastUpdateA - lastUpdateB).TotalSeconds)) > epsillon)
 different = true;