要使用C++檢測文件是否已被覆蓋,你可以使用文件的最后修改時(shí)間
#include<iostream>
#include <fstream>
#include <sys/stat.h>
#include <unistd.h>
bool isFileModified(const std::string& filePath, time_t lastModificationTime) {
struct stat fileInfo;
if (stat(filePath.c_str(), &fileInfo) == 0) {
return fileInfo.st_mtime > lastModificationTime;
} else {
// 無法獲取文件信息,可能文件不存在或其他錯(cuò)誤
return false;
}
}
int main() {
std::string filePath = "path/to/your/file.txt";
struct stat fileInfo;
// 獲取文件的最后修改時(shí)間
if (stat(filePath.c_str(), &fileInfo) != 0) {
std::cerr << "Error: Unable to get file information."<< std::endl;
return 1;
}
time_t lastModificationTime = fileInfo.st_mtime;
// 在此處執(zhí)行你想要檢查文件是否被覆蓋的操作
// 檢查文件是否已被覆蓋
bool isModified = isFileModified(filePath, lastModificationTime);
if (isModified) {
std::cout << "The file has been overwritten."<< std::endl;
} else {
std::cout << "The file has not been overwritten."<< std::endl;
}
return 0;
}
這個(gè)示例首先獲取文件的最后修改時(shí)間,然后執(zhí)行一些操作(在此示例中,這部分代碼未實(shí)現(xiàn))。之后,它再次檢查文件的最后修改時(shí)間并與之前的時(shí)間進(jìn)行比較。如果時(shí)間發(fā)生了變化,說明文件已被覆蓋。請注意,這個(gè)方法并不完美,因?yàn)槲募赡茉跈z查之間被修改,但在實(shí)際應(yīng)用中,這種方法通常足夠了。