如何检查文件是否在c#中被修改

can*_*e88 1 c# visual-studio-2010

我想提示用户在对文件进行一些修改时保存文件,但问题是我不能为我的生活做到这一点.

有些人建议使用FileInfo类,但它只给你lastWriteTime,LastAccessTimeCreationTime.

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

举例来说:假设用户已编辑的文件,我的计划之内,它们加载并点击退出,我希望有一个方法来检查任何修改是否在文件上完成的.如果没有,退出.如果有的话,提示用户保存文件.那么我如何检查该文件的修改?

Dea*_*uga 5

最简单的方法是计算文件的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();
        }
Run Code Online (Sandbox Code Playgroud)

  • 这可能需要一点资源,具体取决于文件的大小...... (2认同)