作成日付の1番古いファイルを削除する

[戻る]
plug 2007/02/22(木) 14:45:18
こんにちは
ファイル操作に関して質問をさせて頂きたいと思います。
環境は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などで調べてみたのですが、分かりませんでした。

よろしければアドバイスをお願いします。

たいちう 2007/02/22(木) 14:49:26
ファイル名のまま、strcmpすれば良いのでは?

tetrapod 2007/02/22(木) 15:07:42
ファイル名の形式が決まっているのなら
全ファイルのファイル名を取得→sort→最後の5つ以外を削除
とすれば、ファイルが6個でも10個でも5個のみ残ると思われる。
んで sort の基準はたいちうさんのおっしゃるとおり strcmp で十分

ファイル名でなく、ファイル作成日付でも最終アクセス日付でも
同じことは可能だけど。

plug 2007/02/22(木) 18:25:23
>たいちう様、tetrapod様
ご返信有難うございます。strcmpを使ってソートしてみたところ、解決できました。
比較方法が分からず困っていたので、助かりました。どうもありがとうございます!

plug 2007/02/22(木) 18:26:08
[[解決]]
すみません、解決済みにするのを忘れておりました・・・。

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