あるフォルダ以下のすべてのフォルダ名を取得する – プログラミング – Home

あるフォルダ以下のすべてのフォルダ名を...
 
通知
すべてクリア

[解決済] あるフォルダ以下のすべてのフォルダ名を取得する


あお
 あお
(@あお)
ゲスト
結合: 21年前
投稿: 45
Topic starter  

いつもお世話になっております。

あるフォルダ以下にあるフォルダ名をすべて持ってきたいと
思っています。
FindFirstFile・FindNextFileを使用してフォルダ名を得る方法は
わかるのですが、このときにフォルダ名とファイル名の区別のつけ方
がわかりません。
拡張子があるかないかを調べるしかないのでしょうか?

おわかりになられる方がいらっしゃいましたら教えてください。

開発環境 Win2000・VS6SP5


引用未解決
トピックタグ
karabiner
 karabiner
(@karabiner)
ゲスト
結合: 21年前
投稿: 5
 

拡張子は関係ないかと。

FindFirstFile() や FindNextFile() で得られる WIN32_FIND_DATA 構造体
の解説を読むと先が開けると思います。

また、_access() とか PathIsDirectory() などを使う方法もありますね。


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

HANDLE FindFirstFile(
LPCTSTR lpFileName,
LPWIN32_FIND_DATA lpFindFileData
);
ですよね?

typedef struct _WIN32_FIND_DATA { // wfd
DWORD dwFileAttributes;
(中略)
} WIN32_FIND_DATA;

dwFileAttributes
 FILE_ATTRIBUTE_DIRECTORY  The handle identifies a directory.

は参考になりますか?


返信引用
瀬戸っぷ
 瀬戸っぷ
(@瀬戸っぷ)
ゲスト
結合: 22年前
投稿: 160
 

既にレス付いていますが…折角なので(笑)

> あるフォルダ以下にあるフォルダ名をすべて持ってきたいと
> 思っています。
> FindFirstFile・FindNextFileを使用してフォルダ名を得る方法は
> わかるのですが、このときにフォルダ名とファイル名の区別のつけ方
> がわかりません。

FindFirstFile()/FindNextFile()で渡すWIN32_FIND_DATA構造体を見てみましょう。
構造体のメンバにdwFileAttributesがあります。
このメンバとFILE_ATTRIBUTE_DIRECTORYが設定されていれば、ディレクトリというコトになり
ます。
注意点として…FILE_ATTRIBUTE_DIRECTORYの値がそのまま入っているワケでは無いので
ビット演算して判定して下さい。
# 不可視属性のついたディレクトリだとFILE_ATTRIBUTE_DIRECTORYと
FILE_ATTRIBUTE_HIDDENが設定されている。


返信引用
あお
 あお
(@あお)
ゲスト
結合: 21年前
投稿: 45
Topic starter  

karabiner様 tib様 瀬戸っぷ様
返信ありがとうございました。

WIN32_FIND_DATAのdwFileAttributesを見ることで区別できました。

ありがとうございました。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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