目前我在同步中有以下部分代码:
...
int index = file.find(remoteDir);
if(index >= 0){
file.erase(index, remoteDir.size());
file.insert(index, localDir);
}
...
// Uses PUT command on the file
现在我想改为:
TL; DR:除了重命名之外,有没有办法检查文件是否与之前相同?那么比较两个文件(使用不同的名称)以查看它们是否相同的方法呢?
答案 0 :(得分:2)
检查md5sum,如果不同则修改文件。 重命名文件的md5校验和将保持不变。文件内容的任何更改都会给出不同的值。
答案 1 :(得分:0)
我首先尝试使用md5的Renjith方法,但是我无法使用它(也许是因为我的C ++是针对Windows而不是Linux,我不知道。)
所以我编写了自己的函数来执行以下操作:
PS:确保在返回之前关闭所有打开的流..我的错误是我在返回语句后关闭了一个流的代码(因此它从未被调用过),因此我在尝试时有错误13重命名文件。