ディレクトリ内のファイルを日付順に取り出したい

[戻る]
hidetin [E-Mail] 2003/10/29(水) 16:10:52
あるディレクトリにあるファイルを日付(格納日時、アクセス日時等)で昇順に取り出したい。
どうすればよいか教えてください。

FindFileでファイルを取得するのは可能ですが、日付順にファイルを取り出したいのです。

επιστημη [E-Mail] [HomePage] 2003/10/29(水) 16:14:32
一旦配列か何かに取り出しておいて、日付でソートすれば。

ぽち 2003/10/29(水) 16:48:06
dir /B | sortの出力をパイプでもらうとか...

επιστημη [E-Mail] [HomePage] 2003/10/29(水) 17:11:24
> 一旦配列か何かに取り出しておいて、日付でソートすれば。

// std::multimap でやってみた。

#include <windows.h>
#include <iostream>
#include <map>
#include <utility>
#include <string>

typedef std::multimap<FILETIME,std::string> map_type;

inline bool operator<(const FILETIME& x, const FILETIME& y) {
  return CompareFileTime(&x,&y) < 0L;
}

int main() {

  map_type files;

  WIN32_FIND_DATA find_data;
  HANDLE handle = FindFirstFile("*.*", &find_data);
  if ( handle != INVALID_HANDLE_VALUE) {
     do {
       files.insert(map_type::value_type(
                find_data.ftLastWriteTime, find_data.cFileName));
     } while ( FindNextFile( handle, &find_data) );
     FindClose(handle);
  }

  for ( map_type::iterator iter = files.begin();
        iter != files.end(); ++iter ) {
    std::cout << iter->second << std::endl;
  }

  return 0;
}

古いスレッドには追加発言できません。