21xrx.com
2024-12-22 21:02:54 Sunday
登录
文章检索 我的文章 写文章
C++清除文件夹中1天前的文件。
2023-07-05 09:53:15 深夜i     --     --
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`路径以匹配实际的文件夹路径,并使用正确的用户名。此外,还要注意,此代码将永久删除与条件匹配的所有文件,因此请务必小心操作。

  
  

评论区

{{item['qq_nickname']}}
()
回复
回复