C# 判断文件是否被修改的方法

2023-11-29

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

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

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

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


最简单的方法是计算文件的 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();
        }
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 判断文件是否被修改的方法 的相关文章

  • 结构化绑定中缺少类型信息

    我刚刚了解了 C 中的结构化绑定 但有一件事我不喜欢 auto x y some func is that auto正在隐藏类型x and y 我得抬头看看some func的声明来了解类型x and y 或者 我可以写 T1 x T2 y
  • 没有特殊字符的密码验证器

    我是 RegEx 的新手 已经进行了大量搜索 但没有找到任何具体内容 我正在编写一个验证密码字符串的正则表达式 可接受的字符串必须至少具有 4 种字符类型中的 3 种 数字 小写字母 大写字母 特殊字符 我对包含有一个想法 也就是说 如果这
  • 根据属性的类型使用文本框或复选框

    如果我有这样的结构 public class Parent public string Name get set public List
  • 在一个数据访问层中处理多个连接字符串

    我有一个有趣的困境 我目前有一个数据访问层 它必须与多个域一起使用 并且每个域都有多个数据库存储库 具体取决于所调用的存储过程 目前 我只需使用 SWITCH 语句来确定应用程序正在运行的计算机 并从 Web config 返回适当的连接字
  • 类型中的属性名称必须是唯一的

    我正在使用 Entity Framework 5 并且有以下实体 public class User public Int32 Id get set public String Username get set public virtual
  • 如何在 Cassandra 中存储无符号整数?

    我通过 Datastax 驱动程序在 Cassandra 中存储一些数据 并且需要存储无符号 16 位和 32 位整数 对于无符号 16 位整数 我可以轻松地将它们存储为有符号 32 位整数 并根据需要进行转换 然而 对于无符号 64 位整
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • 为什么 GCC 不允许我创建“内联静态 std::stringstream”?

    我将直接前往 MCVE include
  • 如何在 C++ 中标记字符串?

    Java有一个方便的分割方法 String str The quick brown fox String results str split 在 C 中是否有一种简单的方法可以做到这一点 The 增强分词器 http www boost o
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • 使用 C# 中的 CsvHelper 将不同文化的 csv 解析为十进制

    C 中 CsvHelper 解析小数的问题 我创建了一个从 byte 而不是文件获取 csv 文件的类 并且它工作正常 public static List
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • 实例化类时重写虚拟方法

    我有一个带有一些虚函数的类 让我们假设这是其中之一 public class AClassWhatever protected virtual string DoAThingToAString string inputString retu
  • C 编程:带有数组的函数

    我正在尝试编写一个函数 该函数查找行为 4 列为 4 的二维数组中的最大值 其中二维数组填充有用户输入 我知道我的主要错误是函数中的数组 但我不确定它是什么 如果有人能够找到我出错的地方而不是编写新代码 我将不胜感激 除非我刚去南方 我的尝
  • 为什么使用小于 32 位的整数?

    我总是喜欢使用最小尺寸的变量 这样效果就很好 但是如果我使用短字节整数而不是整数 并且内存是 32 位字可寻址 这真的会给我带来好处吗 编译器是否会做一些事情来增强内存使用 对于局部变量 它可能没有多大意义 但是在具有数千甚至数百万项的结构
  • 如何实例化 ODataQueryOptions

    我有一个工作 简化 ODataController用下面的方法 public class MyTypeController ODataController HttpGet EnableQuery ODataRoute myTypes pub
  • 有没有办法让 doxygen 自动处理未记录的 C 代码?

    通常它会忽略未记录的 C 文件 但我想测试 Callgraph 功能 例如 您知道在不更改 C 文件的情况下解决此问题的方法吗 设置变量EXTRACT ALL YES在你的 Doxyfile 中
  • 对于某些 PDF 文件,LoadIFilter() 返回 -2147467259

    我正在尝试使用 Adob e IFilter 搜索 PDF 文件 我的代码是用 C 编写的 我使用 p invoke 来获取 IFilter 的实例 DllImport query dll SetLastError true CharSet
  • 在OpenGL中,我可以在坐标(5, 5)处精确地绘制一个像素吗?

    我所说的 5 5 正是指第五行第五列 我发现使用屏幕坐标来绘制东西非常困难 OpenGL 中的所有坐标都是相对的 通常范围从 1 0 到 1 0 为什么阻止程序员使用屏幕坐标 窗口坐标如此严重 最简单的方法可能是通过以下方式设置投影以匹配渲

随机推荐

  • 将照片保存到相机胶卷并确保它确实保存

    我目前正在以这种方式将 UIImage 保存到相机胶卷中 UIImageWriteToSavedPhotosAlbum finalPicture image nil nil nil 但是 如果用户拒绝我们访问他们的照片的权限 会发生什么 我
  • 背景大小 100% 在 IE8 和 IE7 中不起作用

    我有一个空的 div 其中包含比容器大小更大的背景图像 我通过以下方式解决这个问题background image具有值 100 100 的属性 直到您在 IE8 和 IE7 中打开示例为止都没有问题 有什么解决方案吗 甚至是 javasc
  • 通过Java连接SAP时出现异常

    您能告诉我解决以下问题的解决方案吗 我在尝试通过 Java 类连接 SAP 相关文件时遇到此异常 即使sapjco3 jar在我的图书馆路径中 我在 Windows XP 和 Windows Server 98 中尝试过此操作 java l
  • 扩展不正确的 Typescript 类定义

    我正在使用 NPM 包下一个路线在我的项目中 默认导出是一个具有如下类型定义的类 export default class Routes implements Registry getRequestHandler app Server cu
  • 从 Java 调用 JavaScript 时出错

    我试图从 Java 调用 JavaFx WebView 中的 JavaScript 但我得到 Exception in thread JavaFX Application Thread netscape javascript JSExcep
  • 匹配不以空格开头或结尾的字符串的正则表达式

    我需要一个正则表达式来确保字符串不以空格开头或结尾 我不在乎它的 中间 是否有空格 只是不在开头或结尾 我有一个正则表达式almost works S S 以下是一些结果示例 HELLO Match HEL LO Match HELLO N
  • PHP file_get_contents - 替换所有 链接中的所有 URL

    SOLVED 回答如下 如何 使用 file get contents 从拉取的文件中获取所有 url 该文件可以是动态的并且有多个 URL 用自定义的新 URL 替换所有 url 并将现有的当前 url 添加到末尾作为变量 Example
  • 如何将 CString 和 std::string std::wstring 相互转换?

    CString非常方便 同时std string与STL容器更加兼容 我在用hash map 然而 hash map不支持CStrings 作为键 所以我想转换CString into a std string 写一个CString哈希函数
  • 如何获取 ASP.NET 应用程序的根文件夹

    我正在尝试获取应用程序的根文件夹 我使用了以下代码 但这给出了bin文件夹 但我需要的是应用程序的根文件夹 有可能得到这个吗 This is the full directory and exe name String fullAppNam
  • 这个 php 结构是什么意思:$html->redirect("URL")?

    我在 php 的其他地方看到过这个 gt 我以前学PHP的一本书里有这个 但是从来没有解释过 它有什么作用 如何工作 我知道重定向位 但是 html 变量和重定向函数发生了什么 提前致谢 注意 如果您不知道 对象 是什么 则下一段可能没有意
  • 如何使用executemany将Python中的字典列表插入MySQL

    我目前正在使用 MySQL 和 Python 从网络上抓取数据 具体来说 我正在抓取表数据并将其插入到我的数据库中 我当前的解决方案有效 但我觉得它效率极低 如果我不重写代码 很可能会锁定我的数据库 这是我目前使用的 部分代码 itemBa
  • 如何使用Python 3登录SAPGUI?

    我正在尝试使用 Python 登录 SAPGUI 以便创建一个脚本来自动运行事务 但我遇到了问题 每当我尝试登录时 我都会收到
  • 如何在RelativeLayout之外或屏幕之外显示一个ImageView?如何在屏幕左上角显示橡胶

    我已经设置了一个相对视图 其中包含所有元素 按钮 图像等 这是我的 Android 应用程序的标题页 现在我想在整个布局的左上角覆盖 LITE 横幅 我的问题是 LITE 横幅图像是一个倾斜的红色橡胶 我需要将其左上角点设置为屏幕上的 45
  • VS2013中如何让项目继承另一个项目的设置?

    我想创建一个本机 C 项目 它从同一解决方案中的另一个本机 C 项目继承其设置 因此 如果我要更改基础项目的设置 它将反映在派生项目中 这可能吗 我使用 继承 这个词是因为我在项目设置中看到了这一点 尽管我不确定它是从哪里继承的 项目设置共
  • Spyder anaconda 在 Linux 上因分段错误而崩溃

    我刚刚在 Linux 上安装了 Anaconda 当尝试打开spyder 从导航器或终端 时 它不起作用 当我尝试在终端中打开它时 出现以下错误 分段错误 核心转储 我完全更新了Conda 但无法解决问题 我使用的是 Conda 版本 4
  • 说<有什么用?扩展 SomeObject> 而不是

    所以我正在查看一些 Java 代码并偶然发现 List
  • 如何通过多线程代码python提高Webscraping代码速度

    下面是我的代码 我在其中逐行编写 大约有900页 10行 每行5个数据 有什么办法可以让它更快吗 目前正在采取80 min将数据导出到 csv 中 有什么方法可以向页面发出并行请求并使此代码更高效 import requests from
  • ManyToMany 字段的 Django 自定义小部件

    有谁知道有一个显示 2 个选择框的小部件 一个显示模型中所有对象的列表 另一个显示已选择的对象 然后 用户可以从第一个列表中选择一个对象 单击 gt gt 按钮将其移动到 选定 列表 然后 当保存表单时 所选列表中的对象将保存在多对多字段中
  • 使用 JQ 替换 JSON 模板中的变量

    我想用值 Hello Jack 填充 json 模板 但 Hello 部分应保留在模板内 有什么方法可以做到这一点 我尝试了下面的代码 但它给了我错误 jq n arg person Jack my key Hello person jq
  • C# 判断文件是否被修改的方法

    我想在对文件进行一些修改后提示用户保存文件 但问题是我一生都无法这样做 有些人建议使用FileInfo类 但它只给你lastWriteTime LastAccessTime and CreationTime 我想用FileInfo类而不是F