C++:使用同步时重命名而不是删除和复制

标签 c++ file synchronization rename put

目前我的 Sync 中有以下部分代码:

...

int index = file.find(remoteDir);
if(index >= 0){
    file.erase(index, remoteDir.size());
    file.insert(index, localDir);
}

...

// Uses PUT command on the file

现在我想改为执行以下操作:

  • 如果一个文件和以前一样,除了重命名,不要使用 PUT 命令,而是使用重命名命令

TL;DR:有没有办法检查文件是否与以前相同,只是发生了重命名?那么有一种方法可以比较两个文件(具有不同的名称)以查看它们是否相同?

最佳答案

检查 md5sum,如果不同则修改文件。 重命名文件的 md5 校验和将保持不变。文件内容的任何更改都会给出不同的值。

关于C++:使用同步时重命名而不是删除和复制,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22877956/

相关文章:

c++ - 关于来自 VC12 和 VC14 的 c++ 友元和继承的不同行为

c++ - 段错误,但不在 valgrind 或 gdb 中

java - 等待 Java 创建文件

java - 为什么在 Linux 中使用 Files.copy() 复制文件时出现 NoSuchFileException。但在 Windows 中工作正常。

multithreading - 对 MPI_Barrier 的调用是否会影响 MPI 进程中的每个线程?

c++ - 使用 boost::graph 获取特定边缘

c++ - 使用带有 pure_out_value 策略的 std::string& Reference 的 Luabind 函数不可能吗?

Javascript 代码不会打开 XML 文件并放入表中

c# - 在C#中实现同步算法

java - Java 中的子进程再次出现问题