|
|
@@ -878,51 +878,74 @@ void ClearRtpFiles::Get_Channels(const char* backup_folder, const char* src_fold
|
|
|
BLOG_ERROR(fmt::format("[F] *** failed to load src_folder file vec_back_foldernames {}***", backup_folder));
|
|
|
return;
|
|
|
}
|
|
|
-
|
|
|
- for (auto src : vec_src_foldernames) {
|
|
|
- std::string src_ = std::string(src);
|
|
|
- std::string src_channel = get_Item(src_);
|
|
|
- for (auto back : vec_back_foldernames) {
|
|
|
- std::string bak = std::string(back);
|
|
|
- std::string back_channel = get_Item(bak);
|
|
|
- if (back_channel == src_channel) {
|
|
|
- Check_Channels(src_, bak);
|
|
|
- break;
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- //剩余空间小于要求值,删除主存储
|
|
|
std::vector<char*> src_daytmp_name;
|
|
|
+
|
|
|
+ //磁盤空間小於某個值刪除主目录最舊的一天文件
|
|
|
std::string serial = std::string(vec_src_foldernames.front());
|
|
|
serial = serial.substr(0, serial.find("\\"));
|
|
|
int gb_data = Get_Disk_Free(serial);
|
|
|
BLOG_DEBUG(fmt::format("Get_Disk_Free {}", gb_data));
|
|
|
- int index = 0;
|
|
|
- int i = 0;
|
|
|
if (remaining_memory >= gb_data) {
|
|
|
for (auto s : vec_src_foldernames) {
|
|
|
Get_DateFiles(&src_daytmp_name, s);
|
|
|
Folder_Sort(&src_daytmp_name, &vec_src_date_folder);
|
|
|
- if (vec_src_date_folder.size() >= retension_day) {
|
|
|
- index = vec_src_date_folder.size() - retension_day;
|
|
|
- for (auto d : vec_src_date_folder) {
|
|
|
- if (i >= index)
|
|
|
- break;
|
|
|
- BLOG_DEBUG(fmt::format("Delete SRC Folder {}", d));
|
|
|
+ for (auto d : vec_src_date_folder) {
|
|
|
+ BLOG_DEBUG(fmt::format("remaining_memory Delete SRC Folder {}", d));
|
|
|
#ifdef _DEBUG1
|
|
|
- //SHDeleteFolder(d, false);
|
|
|
+ //SHDeleteFolder(d, false);
|
|
|
#endif
|
|
|
- i++;
|
|
|
+ std::vector<char*>::iterator iter;
|
|
|
+ for (iter = vec_src_date_folder.begin(); iter != vec_src_date_folder.end();) {
|
|
|
+ delete[](*iter);
|
|
|
+ *iter = NULL;
|
|
|
+ iter = vec_src_date_folder.erase(iter);
|
|
|
}
|
|
|
+ vec_src_date_folder.clear();
|
|
|
+ break;
|
|
|
}
|
|
|
- std::vector<char*>::iterator iter;
|
|
|
- for (iter = vec_src_date_folder.begin(); iter != vec_src_date_folder.end();) {
|
|
|
- delete[] (*iter);
|
|
|
- *iter = NULL;
|
|
|
- iter = vec_src_date_folder.erase(iter);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //首先保证主目录存留retension_day设置的天数
|
|
|
+ int index = 0;
|
|
|
+ int i = 0;
|
|
|
+ for (auto s : vec_src_foldernames) {
|
|
|
+ Get_DateFiles(&src_daytmp_name, s);
|
|
|
+ Folder_Sort(&src_daytmp_name, &vec_src_date_folder);
|
|
|
+ if (vec_src_date_folder.size() >= retension_day) {
|
|
|
+ index = vec_src_date_folder.size() - retension_day;
|
|
|
+ BLOG_DEBUG(fmt::format("index {},retension_day {}", index,retension_day));
|
|
|
+ for (auto d : vec_src_date_folder) {
|
|
|
+ if (i >= index)
|
|
|
+ break;
|
|
|
+ BLOG_DEBUG(fmt::format("retension_day Delete SRC Folder {}", d));
|
|
|
+#ifdef _DEBUG1
|
|
|
+ //SHDeleteFolder(d, false);
|
|
|
+#endif
|
|
|
+ i++;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ std::vector<char*>::iterator iter;
|
|
|
+ for (iter = vec_src_date_folder.begin(); iter != vec_src_date_folder.end();) {
|
|
|
+ delete[](*iter);
|
|
|
+ *iter = NULL;
|
|
|
+ iter = vec_src_date_folder.erase(iter);
|
|
|
+ }
|
|
|
+ vec_src_date_folder.clear();
|
|
|
+ i = 0;
|
|
|
+ index = 0;
|
|
|
+ }
|
|
|
+
|
|
|
+ for (auto src : vec_src_foldernames) {
|
|
|
+ std::string src_ = std::string(src);
|
|
|
+ std::string src_channel = get_Item(src_);
|
|
|
+ for (auto back : vec_back_foldernames) {
|
|
|
+ std::string bak = std::string(back);
|
|
|
+ std::string back_channel = get_Item(bak);
|
|
|
+ if (back_channel == src_channel) {
|
|
|
+ Check_Channels(src_, bak);
|
|
|
+ break;
|
|
|
}
|
|
|
- vec_src_date_folder.clear();
|
|
|
- i = 0;
|
|
|
}
|
|
|
}
|
|
|
|