高难度的问题请高手回答,我想知道c:\abc目录下所有*.bmp文件谁的创建时间最晚,并把他的文件名提示出来。

解决方案 »

  1.   

    用CFILE对象枚举每个文件,当执行时,判断其中的文件创建时间哪个是离当前系统时间最近。
    CFile::GetStatus
      

  2.   

    CFileFind这个类可以获得文件的创建时间,用GetCreationTime就可以,你自己去看看MSDN,这个问题并不难啊
      

  3.   

    同样CFileFind这个类还可以枚举一个文件夹下的所有文件,用FindNextFile(),并用IsDirectory提出文件夹,最后用GetFileTitle提出文件名就可以了
      

  4.   

    时间比较紧,只能说个大概.
    首先使用FindFirstFile或其他MFC方法枚举所有的BMP文件,并且使用GetFileTime得到每个文件的创建时间,并且将时间数据和文件名写入相应的数组或者链表中,得到一个完整的数组或者链表后使用CompareFileTime比较两个文件时间的先后,依次排序,或者一遍循环后找出,当然你也可以在使用GetFileTime的后直接比较.
      

  5.   

    WIN32_FIND_DATA findData;
    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是时间
      

  6.   

    FindFirstFile和CFile::GetStatus  其中的CFileStatus fStatus.m_ctime表示创建时间
      

  7.   

    用IShellFolder::GetAttributesOf也可以的,不过好像会稍微复杂些,不过可以得到更多更详细的信息,如果只是简单的得到创建时间前面几位说的都可以。
      

  8.   

    CoDosDateTimeToFileTime, CoFileTimeNow, CoFileTimeToDosDateTime,FILETIME结构