21xrx.com
2025-04-03 20:07:22 Thursday
文章检索 我的文章 写文章
C++清除文件夹中1天前的文件。
2023-07-05 09:53:15 深夜i     16     0
C++ 清除 文件夹 1天前的文件 编程

在C++中,清除文件夹中1天前的文件是一个有用的任务。这可以通过以下步骤完成:

1. 获取当前时间和1天之前的时间。可以使用C++中的time_t和tm结构体来获取这些时间。

2. 打开待清除文件夹并遍历其中的每个文件。可以使用C++中的标准文件流或者C语言中的dirent.h头文件来实现此步骤。

3. 获取每个文件的修改时间并与1天前的时间进行比较。如果文件的修改时间早于1天前的时间,则删除该文件。

下面是一个具体的代码示例,其中使用标准文件流来读取文件并使用ctime库来获取和比较时间。请注意,代码仅供参考,并可能需要根据实际情况进行修改和调整。

#include <iostream>
#include <fstream>
#include <ctime>
#include <chrono>
#include <filesystem>
namespace fs = std::filesystem;
int main() {
  // 获取当前时间和1天之前的时间
  auto now = std::chrono::system_clock::now();
  auto one_day_ago = now - std::chrono::hours(24);
  std::time_t now_time = std::chrono::system_clock::to_time_t(now);
  std::time_t one_day_ago_time = std::chrono::system_clock::to_time_t(one_day_ago);
  // 打开待清除文件夹
  fs::path dir_path{"C:\\Users\\USERNAME\\Desktop\\TestFolder"};
  for (const auto& entry : fs::directory_iterator(dir_path)) {
    // 获取文件的修改时间
    auto last_modified = fs::last_write_time(entry.path());
    std::time_t last_modified_time = fs::file_time_to_time_t(last_modified);
    // 比较文件的修改时间和1天之前的时间
    if (last_modified_time < one_day_ago_time) {
      // 删除文件
      std::cout << entry.path().string() << " deleted" << std::endl;
      fs::remove(entry.path());
    }
  }
  return 0;
}

在运行此代码之前,请确保更改`dir_path`路径以匹配实际的文件夹路径,并使用正确的用户名。此外,还要注意,此代码将永久删除与条件匹配的所有文件,因此请务必小心操作。

  
  

评论区