ke_pair(FindData.name, FindData)); //遍历 while (_findnext(FileIndes,&FindData) >= 0) { //插入 vecRes.push_back(FindData.name); m_mapFindData.insert(make_pair(FindData.name, FindData)); } _findclose(FileIndes); return vecRes; } //获取文件访问属性 unsigned CEnumFile::GetFileAttrib(string szFileName) { auto iter = m_mapFindData.find(szFileName); if (iter == m_mapFindData.end()) { stringstream ss; ss << ExceptionHead<<"目录" << m_szPath << "下" << "不存在此文件" << endl; ss >> m_szErrorInfo; perror(m_szErrorInfo.c_str()); throw std::exception(m_szErrorInfo.c_str()); } return iter->second.attrib; } //获取文件创建时间 time_t CEnumFile::GetCreateTime(string szFileName) { auto iter = m_mapFindData.find(szFileName); if (iter == m_mapFindData.end()) { stringstream ss; ss << ExceptionHead << "目录" << m_szPath << "下" << "不存在此文件" << endl; ss >> m_szErrorInfo; perror(m_szErrorInfo.c_str()); throw std::exception(m_szErrorInfo.c_str()); } return iter->second.time_create; } //获取文件最后访问时间 time_t CEnumFile::GetLastAccessTime(string szFileName) { auto iter = m_mapFindData.find(szFileName); if (iter == m_mapFindData.end()) { stringstream ss; ss << ExceptionHead << "目录" << m_szPath << "下" << "不存在此文件" << endl; ss >> m_szErrorInfo; perror(m_szErrorInfo.c_str()); throw std::exception(m_szErrorInfo.c_str()); } return iter->second.time_access; } //获取最后写入时间 time_t CEnumFile::GetLastWriteTime(string szFileName) { auto iter = m_mapFindData.find(szFileName); if (iter == m_mapFindData.end()) { stringstream ss; ss << ExceptionHead << "目录" << m_szPath << "下" << "不存在此文件" << endl; ss >> m_szErrorInfo; perror(m_szErrorInfo.c_str()); throw std::exception(m_szErrorInfo.c_str()); } return iter->second.time_write; }
// EnumFile.cpp : 定义控制台应用程序的入口点。
//
#include "stdafx.h"
#include
#include
#include
#include "EnumFile.h" using namespace std; #pragma warning(disable:4996) string FormatTime(time_t time,string szFormat) { assert(szFormat.size() != 0); if (szFormat.size() == 0) { throw std::exception("格式化字符串为空"); } tm* pTm; pTm = localtime(&time); string szRes(64, '\0'); strftime(&szRes[0], szRes.size(), szFormat.c_str(), pTm); return szRes; } int main() { try { CEnumFile enumFile("C:/Users/善军/Desktop"); vector
vecFiles = enumFile.EnumFile(); cout << vecFiles.size() << endl; for (auto item : vecFiles) { cout << item << ":" << FormatTime(enumFile.GetLastWriteTime(item),"%Y-%m-%d %H:%M:%S") << endl; } } catch (const std::exception& e) { cout << e.what() << endl; } return 0; }