python版本的文件夹对比程序虽然简单,但可视化效果一般,不太好看。使用C#的Winform项目实现可视化对比文件夹内容,主要功能包括:
1)采用Directory.GetDirectories获取子文件夹集合,Directory.GetFiles获取文件集合,并对文件夹、文件名称排序展示;
2)使用FileInfo类获取文件夹最后修改时间,通过判断同名文件的最后修改时间判断文件是否有变动;
3)对比左右两侧的文件夹、文件差异的逻辑:循环查询左侧每一个文件或文件夹是否在右侧存在,不存在则蓝底显示,再循环查询右侧每个文件或文件夹是否在左侧存在,不存在则黄底显示,同名文件判断最后修改时间,不同则两边都用粉底显示;
4)单击任一侧的文件或文件夹,在另一侧同步选中同名文件或文件夹;
5)双击任一侧的文件夹,如果另一侧也存在同名文件夹,则对比双击的文件夹内的差异;
6)点击返回上级文件夹按钮重新对比上一级文件夹内容;
7)Directory.GetDirectories返回的子文件夹名称包含全路径名称,可以调用Path.GetFileName获取文件夹名称。
程序比较简单,就不在文章中列出来,随后会上传到GitHub上。最后是程序运行效果,如下图所示。
程序写完,百度相关文章的时候看到有介绍使用集合的Except函数获取集合差异内容,之前从来没有用过,准备后续试试,同时继续查找其它文章中的更好做法,另外想找个Excel开源操作库,完善功能把差异内容导出为本地excel文件,便于查看、处理。