NexusForce 1.0.0
A Modern C++ Library with extended functionality, web components, and utility libraries
载入中...
搜索中...
未找到
file_diff类 参考

文件比较与差异分析工具类 更多...

#include <file_diff.hpp>

struct  binary_diff_entry
 二进制差异条目 更多...

Public 类型

using size_type
 大小类型
using difference_type = int64_t
 差异偏移量类型

静态 Public 成员函数

static NEFORCE_NODISCARD bool compare (const path &file1, const path &file2, bool binary=true)
 比较两个文件
static NEFORCE_NODISCARD bool compare_binary (const path &file1, const path &file2)
 二进制比较
static NEFORCE_NODISCARD bool compare_text (const path &file1, const path &file2, bool ignore_case=false, bool ignore_whitespace=false)
 文本比较
static NEFORCE_NODISCARD vector< binary_diff_entrybinary_diff (const path &file1, const path &file2, size_type max_diffs=100)
 获取二进制差异列表

详细描述

文件比较与差异分析工具类

提供静态方法进行文件比较和差异分析。

主要功能:

  • 二进制文件比较
  • 文本文件比较(支持忽略大小写和空白字符)
  • 获取详细的二进制差异列表

在文件 file_diff.hpp33 行定义.

成员函数说明

◆ binary_diff()

NEFORCE_NODISCARD vector< binary_diff_entry > file_diff::binary_diff ( const path & file1,
const path & file2,
size_type max_diffs = 100 )
static

获取二进制差异列表

参数
file1第一个文件路径
file2第二个文件路径
max_diffs最多返回的差异条目数,默认100
返回
差异条目列表

逐字节比较两个文件,收集所有差异点。 如果文件大小不同,会包含一个标识大小差异的条目。 限制max_diffs可避免处理超大文件时产生过多条目。

注解
差异条目按文件偏移量升序排列

◆ compare()

NEFORCE_NODISCARD bool file_diff::compare ( const path & file1,
const path & file2,
bool binary = true )
static

比较两个文件

参数
file1第一个文件路径
file2第二个文件路径
binary是否使用二进制比较,默认为true
返回
文件内容相同返回true,否则返回false

根据binary参数选择二进制比较或文本比较。

◆ compare_binary()

NEFORCE_NODISCARD bool file_diff::compare_binary ( const path & file1,
const path & file2 )
static

二进制比较

参数
file1第一个文件路径
file2第二个文件路径
返回
文件内容完全一致返回true

逐字节比较两个文件的内容,要求文件大小相同且每个字节都相等。 使用缓冲读取方式,避免一次性加载整个文件到内存。

◆ compare_text()

NEFORCE_NODISCARD bool file_diff::compare_text ( const path & file1,
const path & file2,
bool ignore_case = false,
bool ignore_whitespace = false )
static

文本比较

参数
file1第一个文件路径
file2第二个文件路径
ignore_case是否忽略大小写
ignore_whitespace是否忽略空白字符(空格、制表符、换行等)
返回
文件内容相同返回true

按行比较文本文件,支持:

  • 忽略大小写:将字母统一转换为小写后比较
  • 忽略空白字符:去除行首尾空白,将连续空白压缩为单个空格

该类的文档由以下文件生成: