FindFirstFileで複数の拡張子を指定するには? – プログラミング – Home

FindFirstFileで複数の拡張...
 
通知
すべてクリア

FindFirstFileで複数の拡張子を指定するには?


Chips
 Chips
(@Chips)
ゲスト
結合: 23年前
投稿: 2
Topic starter  

FindFirstFile関数を使用して1つの拡張子(例えば、*.txt)について検索するときに
は、

if((hFind=FindFirstFile(C:\\... ....\\*.txt,&wfd))
==INVALID_HANDLE_VALUE) return 0;

... ... ...

などと書きますが、2つ以上の拡張子(例えば、*.txtと*.html)について同時検索する
にはどうすればいいのでしょうか。拡張子の数だけ繰り返しFindFirstFile関数を実行す
るのは面倒なので、FindFirstFile関数の第一引数内で処理できればいいのです
が.......
ご教授の程お願いします。

Win2000
VC++6.0
SDK+MFC


引用解決済
トピックタグ
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

FindFirstFileには、そのような機能がないので、
...\*.* で検索して、拡張子を見て.txtか.htmlか
判定する処理を自身で行うしかないと思います。


返信引用
walQ
 walQ
(@walQ)
ゲスト
結合: 23年前
投稿: 6
 

こんなんだめ?
#include<iostream>
#include<windows.h>
using namespace std;

void file_sarch(char *value1,char *value2)
{
HANDLE h;
WIN32_FIND_DATA y;
char path[256];
sprintf(path,%s%s,value1,value2);
h=FindFirstFile(path,&y);
int i=0;
while(FindNextFile(h,&y)){
i++;
cout<<i<<: <<y.cFileName<<endl;
}
}
int main()
{
 //ディレクトリパスは好きなように取得して
file_sarch(C:\\ワルチャン\\デスクトップ\\,*.html);
//この関数を拡張子の分だけ呼び出す
 return 0;
}


返信引用
walQ
 walQ
(@walQ)
ゲスト
結合: 23年前
投稿: 6
 

あっ。
単語間違ってる
file_sarch⇒file_search
でした。
どうでもいいか


返信引用
Chips
 Chips
(@Chips)
ゲスト
結合: 23年前
投稿: 2
Topic starter  

dairygoodsさん。walQさん。ありがとうございます。
ご教授をもとに自分なりに少し工夫して見ようと思います。
疑問がでれば新規にまた質問することにします。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました