问题描述:
想实现备份文件模块:五分钟备份数据一次,若文件小于10M,则向文件追加;若文件达到10M,则创建新文件。采用的方法是,以文件创建时间命名文件,备份文件时,使用readdir()方法获取备份目录下的文件名,判断最后一个文件(最新的文件)是否达到10M大小。
查看备份文件,第一个备份文件没有问题;之后的备份文件大部分都很小,只有少部分达到10M。代码如下:
void getFilenames(std::vector<std::string>& names, const std::string& dir, const std::string& ext)
{
DIR *dp;
struct dirent *ptr;
if ((dp = opendir(dir.c_str())) == NULL)
return;
while ((ptr = readdir(dp)) != NULL)
{
if (strcmp(ptr->d_name, ".") == 0 || strcmp(ptr->d_name, "..") == 0) ///current dir OR parrent dir
continue;
else if (ptr->d_type == DT_REG) ///file
{
std::string strname(ptr->d_name);
if (strname.su