BianChengNan's Blog

Coding is hard, you can make it easy!


  • 首页

  • 关于

  • 标签

  • 分类

  • 归档

  • 搜索

一个更好的文件监控类,基于 DotNet 官方提供的 FileSystemWatcher

发表于 2021-06-14 | 更新于: 2022-07-31 | 分类于 工具 , 源码
字数统计: | 阅读时长 ≈ 分钟

缘起

前一段时间,想使用 .net 监听特定文件夹中的文件是否发生变化。网上一搜,可以使用 .net 官方提供的 FileSystemWatcher,很开心的写好了代码。随着使用的不断深入,发现了 FileSystemWatcher 几个不够完善的地方。比如,

  1. 事件触发时,文件可能还不能被访问。
  2. 如果监听选项设置的过多,则有可能会触发多次文件变化事件。
  3. 监听过滤器不够灵活,我没找到同时监听多种特定文件类型的方法。比如,同时只监听 .docx 和 .bmp 文件。

鉴于此,基于 .net 官方提供的 FileSystemWatcher,我又封装了一个新的类。可以在一定程度上解决以上几个问题。

阅读全文 »

dotnet 中的判等

发表于 2021-05-01 | 更新于: 2022-07-31 | 分类于 c# , 调试 , IL , ildasm
字数统计: | 阅读时长 ≈ 分钟

前言

前几天,同事在 .net 程序中,遇到一个很 “诡异” 的问题:明明两个值是相等的,可偏偏却不相等,这是怎么回事呢?

阅读全文 »

谁是磁盘空间占用大户?

发表于 2021-03-27 | 更新于: 2022-07-31 | 分类于 工具
字数统计: | 阅读时长 ≈ 分钟

缘起

磁盘已经全面爆红很久了,使用 dism++ 清理了几次,依然很紧张。终于,昨天在编译程序的时候又因为磁盘空间不足失败了!是可忍熟不可忍。必须安排!

阅读全文 »

如何判断一个 Dot Net 程序是 32 位还是 64 位?

发表于 2021-03-27 | 更新于: 2022-07-31 | 分类于 调试 , 工具
字数统计: | 阅读时长 ≈ 分钟

缘起

前阵子,朋友遇到一个 .net 程序启动不起来的问题。根据之前的经验,一般是依赖的动态库加载失败导致的。或者找不到(依赖的动态库没有放到相应的目录下,一般放到应用程序所在目录即可),或者不匹配(64 位的程序加载 32 位的动态库,或者 32 位的程序加载 64 位的动态库)。整个排查过程并不复杂,本文不打算介绍整个排查过程,而是想介绍一些 .net 程序的基本常识(比如,以 Any CPU 编译出来的程序,是 32 位的还是 64 位的?),还会介绍几个我认为不错的查看工具。

阅读全文 »

代码丢了?用搜索找出真相

发表于 2021-02-28 | 更新于: 2022-07-31 | 分类于 排错
字数统计: | 阅读时长 ≈ 分钟

缘起

前几天,修复 bug 后,本地测试通过,提交代码到 tfs,关闭 bug。但是客户拿到程序后,效果依然不对。来来回回检查了好几遍,逻辑是正确的,本地验证通过了,代码也确实上传到 tfs 了,但是程序到客户手里,效果确实不对。如果是你,该如何调(shuai)查(guo)呢?

说明:本文只是分享一种排查问题的思路。

阅读全文 »

调试实战 | 缺少 const 导致的 bug

发表于 2021-01-30 | 更新于: 2022-07-31 | 分类于 调试
字数统计: | 阅读时长 ≈ 分钟

前言

最近,在项目里遇到一个很 “诡异” 的问题。明明把后面需要使用的值存起来了,可是使用的时候,却拿到了一堆垃圾数据。有可能是什么原因呢?一起来看看吧。

阅读全文 »

2021 开工喽

发表于 2021-01-04 | 更新于: 2022-07-31 | 分类于 福利
字数统计: | 阅读时长 ≈ 分钟

回首 2020

2020 年基本上按照计划做到了周更。虽然每篇文章的阅读量都不高,但是每一篇都很用心的在写。能对一部分小伙伴儿有启发就值了。写这个公众号的初衷本来就是希望能给遇到相同或相似问题的小伙伴以启发。

2020 收获:

  1. 坚持写了一年原创,围绕着调试,排错,性能优化,软件开发写了52+ 篇原创文章。其中,一篇看雪精华,三篇优秀。
  2. 认识了很多新朋友,也认识了很多优秀的大佬。
  3. 更佛系了。

展望 2021

不管怎样,令人沮丧的 2020 已经过去了,充满希望的 2021 已经来了。本公众号还会继续更新,但是更新频率会有所降低。

2021 为本公众号立几个 flag ,希望都能完成,欢迎各位朋友督促。

  1. 至少更新 12 篇原创,争取做到每月一篇。
  2. 争取再拿一篇看雪精华,至少一篇优秀。
  3. 写一篇关于系统优化的实战。目前还没有写一篇真正让自己满意的优化文章。
  4. 坚持分享更多书籍,至少 12 本。

开工福利

2021 希望大家都有新的收获。包邮送四本技术书籍给大家。抽四个幸运儿,每人一本。下周一(2021 年 1月 11 日)0 点开奖。

注意:本次抽奖仅限老粉丝(2021 年 1 月 4 日之前就关注了 公众号 【编程难】 或者 【比目信息】 的小伙伴儿)参与。

《软技能 代码之外的生存指南》

《程序员的自我修养:链接、装载与库》

《Effective C++:改善程序与设计的55个具体做法》

《深度探索C++对象模型》

产品名称 TODO?教你向资源文件中添加宏来自动更新版本信息。

发表于 2020-12-27 | 更新于: 2022-07-31 | 分类于 vs
字数统计: | 阅读时长 ≈ 分钟

前言

产品信息是向用户展示自家产品的直接方式。虽然是否有产品信息对程序功能没有任何影响,但是程序如果缺少了产品信息给人的感觉是不够正规!作为一名负责任的开发人员,你一定想为自己写的程序添加产品信息。你知道该如何添加吗?如何自动更新版本信息吗?

阅读全文 »

调试实战 | 通过转储文件分析程序无响应之使用 windbg + IDA 逆向篇

发表于 2020-12-19 | 更新于: 2022-07-31 | 分类于 调试
字数统计: | 阅读时长 ≈ 分钟

ida-f5-good

缘起

最近,接连在项目中遇到了两个界面无响应的问题。都只发生在客户特定机器上,不方便直接调试,只能抓取 dump 进行事后分析了。

阅读全文 »

shared_ptr能和基于引用计数的智能指针混用吗?

发表于 2020-12-13 | 更新于: 2022-07-31 | 分类于 开发
字数统计: | 阅读时长 ≈ 分钟

前言

我在上一篇文章中介绍了几种误用智能指针的例子。还有一种比较典型,就是混用两种类型的智能指针。直接看代码吧!

阅读全文 »
1234…10
BianChengNan

BianChengNan

99 日志
27 分类
173 标签
RSS
GitHub 知乎 博客园
© 2019 — 2022 BianChengNan | 全博客共 字
0%