この発言は
#00581 Satobe さんのRE^4:長いファイル名(フルパス)を取得
に対するコメントです
この発言に対し以下のコメントが寄せられています
#00584 Fermion さん RE^6:長いファイル名(フルパス)を取得
Satobe さん、こんにちは。 Fermion です。
お気を悪くされたのでしたら謝ります。m(_"_)m
> FindFirstの方を調べてみて下さい。
>
> Result := FindMatchingFile(F);
> if Result <> 0 then FindClose(F);
>
> ↑というコードがあり、ここで FindCloseが実行されてしまうことが
> あるんです。
もちろん、誹謗中傷になってはいけませんので、このあたりのことは
調べて、テクニカルハンドブックのサンプルコードでは、FindFirst に
渡すパラメータ Attr が faAnyFile ですので、仰るような FindFirst
がらみの問題に、目をつむっても、まともに動作するだろうから、強ち
バグとは言い切れないのでは?と思ってレスを付けたのです。(ひょっ
としてこの場合でも拙いのかなぁ。。。(^^; そうだとしたら完璧な勘
違いです。すみません。m(_"_)m )
ヘルプを見てみますと FindFirst と FindClose はセットで使うかの
表現も見られますので、本来、 FindClose は FindFirst に失敗しても
必ずセットで呼び出すことを前提としているのだとしたらコーディング
上の間違いはないし。。。(^^;)
> FindFirstが非ゼロを返した場合には、FindCloseを呼び出さないよう
> にした方がいいですよ。(^^;
>
> もともと Win32APIの仕様では、FindFirstFile APIに失敗したら、
> FindClose APIは呼び出す必要ありません(ハンドルがないから
> 呼び出せない)ですしね。
ご丁寧なアドバイス、あ・り・が・と・う・ご・ざ・い・ま・す。
98/06/21(日) 03:41 Fermion [KHF03264]
Original document by Fermion 氏 ID:(KHF03264)