ここのサンプルプログラムの理解に苦しんでいます。どうかお力を御貸し下さい。 これはなぜFindFirstFile(path,&lp);としていないのでしょうか?
サイズの大きさをMAX_PATHに統一するためですか?
if((lp.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY)
&& strcmp(lp.cFileName,"..")!=0 && strcmp(lp.cFileName,".")!=0)これはファイルの属性?とlpをANDして何がおこるのでしょうか?
そのつぎの".."をstrcmpするのはわかるような気がします。次の深層かをしらべているんですよね?
しかし"."これも同じときにやってしまうのはなぜなのでしょうか?これは今いる階層の場所ですよね?
どちらか0以外ならどちらかが0にならないとまったく指定したところ意外を探していることになりませんか?
そして、そこのif分が成功したときに、もう一度Directory(subpath);しているのが、よくわかりません。
サブパスの中にフォルダを見つけたときにさらにそのフォルダの中にいくということでしょうか?
wsprintfとは、いったいどのように使うのでしょうか?調べてみたのですが、三つ引数が書いてありました。
http://msdn.microsoft.com/ja-jp/library/cc364872.aspx
しかし、このサンプルプログラムは4つ引数を持たせているきがするのですが、この使い方もできるのでしょうか?
実際この関数はsprintfのようなものらしいのですが、文字列の表示が目的なのでしょうか?それとも、文字列をバッファに格納するのが目的なのでしょうか?バッファで調べてみたところプリンターなどの時間の差を埋めるために一度情報をためておくところがバッファらしいのですが、深層いく前にバッファにハンドルをとっておいて、後から呼び出すということでしょうか? これは、フォルダとファイルの分別?をするのがFILE_ATTRIBUTE_DIRECTORYですよね?
これと、これをANDしたのを違うかをしらべているんですか?
それでなにが・・・
本当に質問だらけですみません。
ご回答よろしくお願いします。