■70012 / ) |
Re[3]: CFileFindとCFile::GetStatus() |
□投稿者/ とっちゃん (196回)-(2014/02/17(Mon) 18:43:08)
|
■No70011 (nobb さん) に返信 > 1. >>ファイルの存在チェックのために使うのであれば、無駄が多すぎるので > との事ですが、単純にtrue/falseを得るだけの目的なのに、それ以外の機能(関数)が多いという意味で解釈してもよろしいでしょうか? > はい。 CFile::GetStatus() なら、GetFileAttributesExを行ってから、さらに CFileStatus を埋める作業がありますし CFileFind は、FindFirstFile をしますし、クリーンナップ処理も入ります。
単純に存在チェックがしたいだけなら、余計な作業が多々あるということになります。
> 2. >>(ただし、状況によってはshlwapiを使いたくないという状況もあるため > shlwapiを使いたくない状況とはどのような時なのでしょうか? > こちらは後々の為に参考になれば・・・と思うので、書くのが面倒とか、ここで書きはじめると長くなりすぎる!とかでしたら割愛していただいても構いませんw
shlwapi(SHell Light-Weight API)を使うと、その分余計な関数呼び出しが入ります。 ファイルチェックだけなら、 !(GetFileAttributes(path) & FILE_ATTRIBUTE_DIRECTORY) で判断できるので(ただしわかりにくいw)、利用状況等々によってはそういう判断を優先する場合もあるというだけです。
昔は利用できない環境がある場合に対応(Ver.4.0なWindowsOSの場合など)する必要もあったのですが、さすがに今はそれは条件には含めなくて済みますからねw
|
|