高难度的问题请高手回答,我想知道c:\abc目录下所有*.bmp文件谁的创建时间最晚,并把他的文件名提示出来。
解决方案 »
- FILE_DEVICE_BUS_EXTENDER类型的设备到底是怎样的设备?
- 关于VC6.0IDE的一个问题
- 如何象写字版那样在SDI程序可以打开多种文件?
- 怎样在线程外结束该线程
- 经常在blog中看到 rss但是对这个缩写不是很了解哪位说说是个什么东东!。
- 请问如下问题:用ACCESS做数据库,其中所有表都为空,在进入程序中时,出现“试图越过数据有效的存储区间”的错误,请问各位大虾是什么问
- 2000下打开并口的问题,请指点迷津
- 征求算法问题,欢迎交流!
- 请问在VSS中,服务端和客户端如何相互拷贝文件的? 在线等待
- 关于Winsock的问题,求高手速解!
- 高分求一简单程序。只实现该程序的一个函数就可以。问题如下:
- 常识性小问题:TRUE 和 true 的区别?
CFile::GetStatus
首先使用FindFirstFile或其他MFC方法枚举所有的BMP文件,并且使用GetFileTime得到每个文件的创建时间,并且将时间数据和文件名写入相应的数组或者链表中,得到一个完整的数组或者链表后使用CompareFileTime比较两个文件时间的先后,依次排序,或者一遍循环后找出,当然你也可以在使用GetFileTime的后直接比较.
HANDLE hFind;
CFileProperty fileProp;
CTime timeNew;CString strRoot = "C:\\abc\\";
CString strFileName, strFileNameFinded;
CString strFileFind = strRoot + "*.bmp";hFind = ::FindFirstFile(strFileFind, &findData);
if(hFind != INVALID_HANDLE_VALUE) {
do {
if(findData.cFileName[0] == '.') continue;
CFileStatus fileStatus;
strFileName = strRoot + findData.cFileName;
CFile::GetStatus(strFileName, fileStatus);
if(timeNew < fileStatus.m_ctime)
{
strFileNameFinded = strFileName;
timeNew = fileStatus.m_ctime;
}
}while(::FindNextFile(hFind, &findData));
}
strFileNameFinded应该是文件名
timeNew是时间