繁体   English   中英

如何检查文件是否已在C#中修改

[英]How to check if a file has been modified in c#

在对文件进行一些修改后,我想提示用户保存文件,但是问题是我一生都无法做到这一点。

有人建议使用FileInfo类,但它只为您提供lastWriteTimeLastAccessTimeCreationTime

我想使用FileInfo类而不是FileSystemWatcher来检查修改,但是如何?

示例:假设一个用户在我的程序中编辑了一个他们加载的文件,然后单击EXIT,我想要一种方法来检查是否对该文件进行了任何修改。 如果不存在,请退出。 如果有,请提示用户保存文件。 那么,如何检查该文件的修改?

最简单的方法是计算文件的MD5哈希值,并将其与原始MD5哈希值进行比较,如果这两个不匹配,则文件已被修改...

        using (var md5 = new MD5CryptoServiceProvider())
        {
            var buffer = md5.ComputeHash(File.ReadAllBytes(filename));
            var sb = new StringBuilder();
            for (var i = 0; i < buffer.Length; i++)
            {
                sb.Append(buffer[i].ToString("x2"));
            }
            return sb.ToString();
        }

这是一些有关如何使用File或FileInfo类获取LastWriteTime的示例。

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

加载文件时,我将存储文件的时间戳,然后将其与File.GetLastWriteTime()进行比较,以查看此后是否已保存文件。 如果文件是由外部来源修改的,则可以为用户提供放弃其更改并重新加载文件或将其更改保存到新文件的选项。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM