ルートディクトリ指定時の検索処理 – プログラミング – Home

ルートディクトリ指定時の検索処理
 
通知
すべてクリア

[解決済] ルートディクトリ指定時の検索処理


あうあう
 あうあう
(@あうあう)
ゲスト
結合: 23年前
投稿: 12
Topic starter  

お世話になります。
ルートディクトリからの検索処理について質問があります。
任意のフォルダを選択して、そのフォルダの直下(サブも対象)
のファイル情報を取得して、ファイルに保存するプログラムを
作ってます。FindFirstFile関数を用いてますが、
ルートディレクトリ指定時に限っての話ですが、ルート直下の
ファイル及び、ディレクトリしか取得できません。
ルート以外(例:c:\windows)ですと上手くいきます。
原因がわからないので、以下のURLより

http://www.microsoft.com/japan/developer/library/jpwinpf/_win32_findfirstfile.ht
m

>ルートディレクトリ内のファイルを検索するには、この関数で
>C:\* のようなファイル名を指定し、引き続き GetFileAttributes
>関数を・・・

と記述されていますが、正直意味がわかりません。
GetFileAttributesを調べてみてると、ファイルやディレクトリの
属性を返す関数のようですが、これとルートの検索と何の関係が
あるのでしょうか?

指定ディレクトリがルートの場合に限って、まず最初にルート直下
のディレクトリをバッファに退避を行い、退避された情報の数分、
検索関数を呼び出すという作りの方が無難なのでしょうか?
宜しくお願いします。

環境:VC++6.0 MFC WIN98


引用未解決
トピックタグ
へたれ
 へたれ
(@へたれ)
ゲスト
結合: 23年前
投稿: 32
 

へたれと申します。

コードを見ないとなんとも言えないんですが、
ルートディレクトリが指定されたときと、
そうでないときのディレクトリの指定方法が
同じだとうまくいきません。

ルートディレクトリ以外なら

(カレントディレクトリ名) + \\ + (FindFirstFile で引っかかったファイル名)

でうまくパスを取得できますが、
ルートディレクトリで同じことをすると

C:\\\\ディレクトリ名

となってしまい、結果的にルートディレクトリのファイルしか
取得できなくなってしまいます。

なので、if文を入れてルートディレクトリと、そうでないときの
パス指定が必要になります。

違ってたらすいませんm(__)m


返信引用
あう
 あう
(@あう)
ゲスト
結合: 23年前
投稿: 7
 

ご返答ありがとうございます。

>なので、if文を入れてルートディレクトリと、そうで
>ないときのパス指定が必要になります。

検索関数にて検索を行いディレクトリ発見時、当関数
の再帰呼び出しを行うのですが、当関数の引数に検索対象のパス
を設定するのですが、ルートディレクトリ選択時に\を余分に
付けてパス情報を渡してました。
つ、つまんないミスで申し訳ありませんでした。


返信引用
へたれ
 へたれ
(@へたれ)
ゲスト
結合: 23年前
投稿: 32
 

私も同じことで悩みましたから^^;


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

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