你用Classwizard给Date Time Picker添加变量的时候有好几种类型可以选择,其中一种就是 FILETIME,或者直接把m_BeginTime和m_EndTime类型改成FILETIME就可以了吧,然后在构造的时候给它们赋初值,如果你已经把它们和Date Time Picker联系的话
不好意思,前段有点忙!用Classwizard给Date Time Picker添加变量里没有这种类型吧!Value里对应的变量类型只有CTime和COldDateTime,Control里对应的只有CDateTimeCtrl而已!
_chdir(); //设置当前目录
_findfirst() ; //只在当前目录查找
_findnext(); //查找下一个
具体函数使用参照MSDN
FindNextFile();
FindClose();
BOOL Cdlg1Dlg::FindFile(LPCTSTR pszFileName)
{
WIN32_FIND_DATA FileData;
HANDLE hSearch;
TCHAR szFile2Find[]=_T("*"); hSearch=::FindFirstFile(szFile2Find, &FileData);
if (hSearch == INVALID_HANDLE_VALUE)
return FALSE;
if(FileData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)
{
if(FileData.cFileName[0]!=_T('.'))
{
SetCurrentDirectory(FileData.cFileName);
FindFile(pszFileName);
}
}
else
{
TCHAR szFullPathName[MAX_PATH]={0};
TCHAR szFileName[MAX_PATH]={0};
LPTSTR pszFilePart=szFileName;
DWORD cchSize=sizeof(szFullPathName);
GetFullPathName(FileData.cFileName,cchSize,szFullPathName,&pszFilePart);
if(lstrcmpi(FileData.cFileName,pszFileName)==0)
{
m_list.AddString(szFullPathName);
}
else
SetDlgItemText(IDC_LISTBOX,szFullPathName);
} while(1)
{
if (!FindNextFile(hSearch, &FileData))
{
if (GetLastError() == ERROR_NO_MORE_FILES)
{
SetCurrentDirectory(_T(".."));
break;
}
} if(FileData.dwFileAttributes&FILE_ATTRIBUTE_DIRECTORY)
{
if(FileData.cFileName[0]!=_T('.'))
{
SetCurrentDirectory(FileData.cFileName);
FindFile(pszFileName);
}
}
else
{
TCHAR szFullPathName[MAX_PATH]={0};
TCHAR szFileName[MAX_PATH]={0};
LPTSTR pszFilePart=szFileName;
DWORD cchSize=sizeof(szFullPathName);
GetFullPathName(FileData.cFileName,cchSize,szFullPathName,&pszFilePart);
if(lstrcmpi(FileData.cFileName,pszFileName)==0)
{
m_list.AddString(szFullPathName);
}
else
SetDlgItemText(IDC_LISTBOX,szFullPathName);
} } FindClose(hSearch);
return TRUE;
}使用的方法
SetCurrentDirectory(_T("C:\\"));设置一下开始搜索的卷如D:\
FindFile(_T("stdafx.h"));建议,给它开个线程吧,
void CTimeDlg::Find(LPCTSTR lfile,CString path)
{
UpdateData(TRUE);
WIN32_FIND_DATA fd;
m_list.ResetContent();
HANDLE hd = ::FindFirstFile(lfile,&fd);
CFile file;
CFileStatus status;
path += fd.cFileName;
//TRACE("str = %s\n",str);
file.GetStatus(path,status);
if (status.m_ctime >= m_Begintime && status.m_ctime <= m_Endtime)
{
m_list.AddString(fd.cFileName);
}
while (FindNextFile(hd,&fd))
{ CFile file1;
//CString m_path = "c:\\";
path += fd.cFileName;
file1.GetStatus(path,status);
if (status.m_ctime >= m_Begintime && status.m_ctime <= m_Endtime)
{
m_list.AddString(fd.cFileName);
}
}}
你还忘了FindClose(hd);
FILETIME,或者直接把m_BeginTime和m_EndTime类型改成FILETIME就可以了吧,然后在构造的时候给它们赋初值,如果你已经把它们和Date Time Picker联系的话