C# と VB.NET の質問掲示板

わんくま同盟

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト


(過去ログ 119 を表示中)
■70012 / )  Re[3]: CFileFindとCFile::GetStatus()
□投稿者/ とっちゃん (196回)-(2014/02/17(Mon) 18:43:08)
とっちゃん さんの Web サイト
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

返信 編集キー/


管理者用

- Child Tree -