输入D:
// MFCApplication9Dlg.cpp : 实现文件
//
#include "stdafx.h"
#include "MFCApplication9.h"
#include "MFCApplication9Dlg.h"
#include "afxdialogex.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CMFCApplication9Dlg 对话框
CMFCApplication9Dlg::CMFCApplication9Dlg(CWnd* pParent /*=NULL*/)
: CDialogEx(IDD_MFCAPPLICATION9_DIALOG, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CMFCApplication9Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CMFCApplication9Dlg, CDialogEx)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDOK, &CMFCApplication9Dlg::OnBnClickedOk)
END_MESSAGE_MAP()
// CMFCApplication9Dlg 消息处理程序
BOOL CMFCApplication9Dlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
// TODO: 在此添加额外的初始化代码
CListCtrl *p = (CListCtrl*)GetDlgItem(IDC_LIST1);
p->InsertColumn(0,_T("名称"),LVCFMT_CENTER,150);
p->InsertColumn(1, _T("修改时间"), LVCFMT_CENTER, 100);
p->InsertColumn(2, _T("类型"), LVCFMT_CENTER, 100);
p->InsertColumn(3, _T("大小"), LVCFMT_CENTER, 100);
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
// 如果向对话框添加最小化按钮,则需要下面的代码
// 来绘制该图标。 对于使用文档/视图模型的 MFC 应用程序,
// 这将由框架自动完成。
void CMFCApplication9Dlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
// 使图标在工作区矩形中居中
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// 绘制图标
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialogEx::OnPaint();
}
}
//当用户拖动最小化窗口时系统调用此函数取得光标
//显示。
HCURSOR CMFCApplication9Dlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}
#include<AtlBase.h>
#include<io.h>
void CMFCApplication9Dlg::OnBnClickedOk()
{
struct _finddatai64_t c_file;//定义查找的文件变量
CString szAdd;
GetDlgItemText(IDC_EDIT1, szAdd);
intptr_t hFile;//定义变量
if ((hFile = _findfirst64(szAdd+"\\*.*", &c_file)) == -1L) { return; }//判断是否查找到文件
CListCtrl* Plist = (CListCtrl*)GetDlgItem(IDC_LIST1);//创建新list
Plist->DeleteAllItems();
int i = 0;
USES_CONVERSION;
CString str;
do
{
if (!(c_file.attrib & _A_HIDDEN)) {//判断是否是隐藏文件 不是隐藏文件就打印
Plist->InsertItem(i, A2W(c_file.name));
if (_A_SUBDIR & c_file.attrib) //判断是否是文件夹
{
Plist->SetItemText(i,2,_T("文件夹"));
}
else
{
str = c_file.name;
int n = str.ReverseFind(_T('.'));
if (n > 0) { Plist->SetItemText(i, 2, str.Mid(n) + _T("文件")); }//添加后缀
}
str.Format(_T("%d"), c_file.size);
Plist->SetItemText(i, 3, str);
COleDateTime time(c_file.time_write);
str.Format(_T("%d/%d/%d %d:%02d"), time.GetYear(), time.GetMonth(), time.GetDay(), time.GetHour(), time.GetMinute());
Plist->SetItemText(i, 1, str);
++i;
}
} while (_findnext64(hFile, &c_file) == 0);//文件是否查询完毕
_findclose(hFile);//关闭查询
}
运行显示
第2种方法
.cpp文件
// MFCApplication9Dlg.cpp : 实现文件
//
#include "stdafx.h"
#include "MFCApplication9.h"
#include "MFCApplication9Dlg.h"
#include "afxdialogex.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CMFCApplication9Dlg 对话框
CMFCApplication9Dlg::CMFCApplication9Dlg(CWnd* pParent /*=NULL*/)
: CDialogEx(IDD_MFCAPPLICATION9_DIALOG, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CMFCApplication9Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CMFCApplication9Dlg, CDialogEx)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDOK, &CMFCApplication9Dlg::OnBnClickedOk)
END_MESSAGE_MAP()
// CMFCApplication9Dlg 消息处理程序
BOOL CMFCApplication9Dlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
// TODO: 在此添加额外的初始化代码
CListCtrl *p = (CListCtrl*)GetDlgItem(IDC_LIST1);
p->InsertColumn(0,_T("名称"),LVCFMT_CENTER,150);
p->InsertColumn(1, _T("修改时间"), LVCFMT_CENTER, 150);
p->InsertColumn(2, _T("类型"), LVCFMT_CENTER, 100);
p->InsertColumn(3, _T("大小"), LVCFMT_RIGHT, 100);
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
// 如果向对话框添加最小化按钮,则需要下面的代码
// 来绘制该图标。 对于使用文档/视图模型的 MFC 应用程序,
// 这将由框架自动完成。
void CMFCApplication9Dlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
// 使图标在工作区矩形中居中
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// 绘制图标
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialogEx::OnPaint();
}
}
//当用户拖动最小化窗口时系统调用此函数取得光标
//显示。
HCURSOR CMFCApplication9Dlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}
#include<AtlBase.h>
#include<io.h>
void CMFCApplication9Dlg::OnBnClickedOk()
{
WIN32_FIND_DATA c_file;//定义查找的文件变量
HANDLE hFile;
CString szAdd;
GetDlgItemText(IDC_EDIT1, szAdd);
CListCtrl* Plist = (CListCtrl*)GetDlgItem(IDC_LIST1);//创建新list
Plist->DeleteAllItems();
if ((hFile = FindFirstFile(szAdd + "\\*.*", &c_file)) == INVALID_HANDLE_VALUE) { return; }//判断是否查找到文件
int i = 0;
CString str;
do
{
if (!IsHidden(c_file)) {//判断是否是隐藏文件 不是隐藏文件就打印
Plist->InsertItem(i, c_file.cFileName);
if (FILE_ATTRIBUTE_DIRECTORY & c_file.dwFileAttributes) //判断是否是文件夹
{
Plist->SetItemText(i, 2, _T("文件夹"));
}
else
{
str = c_file.cFileName;
int n = str.ReverseFind(_T('.'));
if (n > 0) { Plist->SetItemText(i, 2, str.Mid(n) + _T("文件")); }//添加后缀
}
str.Format(_T("%d"), c_file.nFileSizeLow);
Plist->SetItemText(i, 3, str);
COleDateTime time(c_file.ftLastWriteTime);
str.Format(_T("%d/%d/%d %d:%02d"), time.GetYear(), time.GetMonth(), time.GetDay(), time.GetHour(), time.GetMinute());
Plist->SetItemText(i, 1, str);
++i;
}
} while (FindNextFile(hFile, &c_file));//文件是否查询完毕
FindClose(hFile);//关闭查询
}
//void CMFCApplication9Dlg::OnBnClickedOk()
//{
// struct _finddatai64_t c_file;//定义查找的文件变量
//
// CString szAdd;
// GetDlgItemText(IDC_EDIT1, szAdd);
//
// intptr_t hFile;//定义变量
// if ((hFile = _findfirst64(szAdd+"\\*.*", &c_file)) == -1L) { return; }//判断是否查找到文件
// CListCtrl* Plist = (CListCtrl*)GetDlgItem(IDC_LIST1);//创建新list
// Plist->DeleteAllItems();
// int i = 0;
// USES_CONVERSION;
// CString str;
// do
// {
// if (!(c_file.attrib & _A_HIDDEN)) {//判断是否是隐藏文件 不是隐藏文件就打印
// Plist->InsertItem(i, A2W(c_file.name));
// if (_A_SUBDIR & c_file.attrib) //判断是否是文件夹
// {
// Plist->SetItemText(i,2,_T("文件夹"));
// }
// else
// {
// str = c_file.name;
// int n = str.ReverseFind(_T('.'));
// if (n > 0) { Plist->SetItemText(i, 2, str.Mid(n) + _T("文件")); }//添加后缀
//
//
// }
// str.Format(_T("%d"), c_file.size);
// Plist->SetItemText(i, 3, str);
// COleDateTime time(c_file.time_write);
// str.Format(_T("%d/%d/%d %d:%d"), time.GetYear(), time.GetMonth(), time.GetDay(), time.GetHour(), time.GetMinute());
// Plist->SetItemText(i, 1, str);
// ++i;
// }
// } while (_findnext64(hFile, &c_file) == 0);//文件是否查询完毕
// _findclose(hFile);//关闭查询
//
//
//
//
//
//}
.h 头文件
// MFCApplication9Dlg.h : 头文件
//
#pragma once
// CMFCApplication9Dlg 对话框
class CMFCApplication9Dlg : public CDialogEx
{
// 构造
inline static BOOL IsHidden(const WIN32_FIND_DATA &c_file)
{
if (c_file.dwFileAttributes & FILE_ATTRIBUTE_HIDDEN)
{
return TRUE;
}
if (!_tcscmp(c_file.cFileName,_T(".")))
{
return TRUE;
}
if (!_tcscmp(c_file.cFileName, _T("..")))
{
return TRUE;
}
return FALSE;
}
public:
CMFCApplication9Dlg(CWnd* pParent = NULL); // 标准构造函数
// 对话框数据
#ifdef AFX_DESIGN_TIME
enum { IDD = IDD_MFCAPPLICATION9_DIALOG };
#endif
protected:
virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持
// 实现
protected:
HICON m_hIcon;
// 生成的消息映射函数
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
DECLARE_MESSAGE_MAP()
public:
afx_msg void OnBnClickedOk();
};
运行效果更上面一样
查找文件最新
// MFCApplication9Dlg.cpp : 实现文件
//
#include "stdafx.h"
#include "MFCApplication9.h"
#include "MFCApplication9Dlg.h"
#include "afxdialogex.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#endif
// CMFCApplication9Dlg 对话框
CMFCApplication9Dlg::CMFCApplication9Dlg(CWnd* pParent /*=NULL*/)
: CDialogEx(IDD_MFCAPPLICATION9_DIALOG, pParent)
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
void CMFCApplication9Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialogEx::DoDataExchange(pDX);
}
BEGIN_MESSAGE_MAP(CMFCApplication9Dlg, CDialogEx)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
ON_BN_CLICKED(IDOK, &CMFCApplication9Dlg::OnBnClickedOk)
END_MESSAGE_MAP()
// CMFCApplication9Dlg 消息处理程序
BOOL CMFCApplication9Dlg::OnInitDialog()
{
CDialogEx::OnInitDialog();
// 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动
// 执行此操作
SetIcon(m_hIcon, TRUE); // 设置大图标
SetIcon(m_hIcon, FALSE); // 设置小图标
// TODO: 在此添加额外的初始化代码
CListCtrl *p = (CListCtrl*)GetDlgItem(IDC_LIST1);
p->InsertColumn(0,_T("名称"),LVCFMT_CENTER,150);
p->InsertColumn(1, _T("修改时间"), LVCFMT_CENTER, 150);
p->InsertColumn(2, _T("类型"), LVCFMT_CENTER, 100);
p->InsertColumn(3, _T("大小"), LVCFMT_RIGHT, 100);
return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
}
// 如果向对话框添加最小化按钮,则需要下面的代码
// 来绘制该图标。 对于使用文档/视图模型的 MFC 应用程序,
// 这将由框架自动完成。
void CMFCApplication9Dlg::OnPaint()
{
if (IsIconic())
{
CPaintDC dc(this); // 用于绘制的设备上下文
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
// 使图标在工作区矩形中居中
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
CRect rect;
GetClientRect(&rect);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// 绘制图标
dc.DrawIcon(x, y, m_hIcon);
}
else
{
CDialogEx::OnPaint();
}
}
//当用户拖动最小化窗口时系统调用此函数取得光标
//显示。
HCURSOR CMFCApplication9Dlg::OnQueryDragIcon()
{
return static_cast<HCURSOR>(m_hIcon);
}
#include<AtlBase.h>
#include<io.h>
void CMFCApplication9Dlg::OnBnClickedOk()
{
//WIN32_FIND_DATA c_file;
CFileFind ff;//定义查找的文件变量
//HANDLE hFile;
CString szAdd;
GetDlgItemText(IDC_EDIT1, szAdd);
CListCtrl* Plist = (CListCtrl*)GetDlgItem(IDC_LIST1);//创建新list
Plist->DeleteAllItems();
BOOL b = ff.FindFile(szAdd + "\\*.*");//) { return; }//判断是否查找到文件
int i = 0;
CString str;
while(b)
{
b=ff.FindNextFile();
if (!ff.IsHidden() && !ff.IsDots()) {//判断是否是隐藏文件 不是隐藏文件就打印 判断是否有.文件
Plist->InsertItem(i, ff.GetFileName());
if (ff.IsDirectory()) //判断是否是文件夹
{
Plist->SetItemText(i, 2, _T("文件夹"));
}
else
{
str = ff.GetFileName();
int n = str.ReverseFind(_T('.'));
if (n > 0) { Plist->SetItemText(i, 2, str.Mid(n) + _T("文件")); }//添加后缀
}
str.Format(_T("%d"), ff.GetLength());
Plist->SetItemText(i, 3, str);
FILETIME ftime;
ff.GetLastWriteTime(&ftime);
COleDateTime time(ftime);
str.Format(_T("%d/%d/%d %d:%02d"), time.GetYear(), time.GetMonth(), time.GetDay(), time.GetHour(), time.GetMinute());
Plist->SetItemText(i, 1, str);
++i;
}
};
ff.Close();//关闭
}