こんにちは
ファイル操作に関して質問をさせて頂きたいと思います。
環境はWindows2000 VC++6.0です。
あるフォルダの中に以下のような5つのファイルがあり、
ファイル名の「ABCDE_」部分はどのファイルも共通の文字列で、
後ろの「2007~」の8桁数値部分は、txtファイルが作成された日付を
YYYYMMDD形式で表しています。
ABCDE_20070223.txt
ABCDE_20070222.txt
ABCDE_20070221.txt
ABCDE_20070220.txt
ABCDE_20070219.txt
フォルダの中のtxtファイルが5件をこえると、作成日付の一番古いファイルが
1件消去されるようにしたいのですが、一番古いファイルの検索方法が分からず
悩んでおります。
ファイル名を取得し、その中から数値部分を取り出して一番小さいものを
調べるなどは出来るのでしょうか。
それとも単純に作成日時の古いものを検索する方法などもあるのでしょうか。
MSDNなどで調べてみたのですが、分かりませんでした。
よろしければアドバイスをお願いします。
ファイル名のまま、strcmpすれば良いのでは?
ファイル名の形式が決まっているのなら
全ファイルのファイル名を取得→sort→最後の5つ以外を削除
とすれば、ファイルが6個でも10個でも5個のみ残ると思われる。
んで sort の基準はたいちうさんのおっしゃるとおり strcmp で十分
ファイル名でなく、ファイル作成日付でも最終アクセス日付でも
同じことは可能だけど。
>たいちう様、tetrapod様
ご返信有難うございます。strcmpを使ってソートしてみたところ、解決できました。
比較方法が分からず困っていたので、助かりました。どうもありがとうございます!
すみません、解決済みにするのを忘れておりました・・・。