kkamegawa's weblog

Visual Studio,TFS,ALM,VSTS,DevOps関係のことについていろいろと書いていきます。Google Analyticsで解析を行っています

その機能を提供しているAPIがきっとあるよ

というつぶやきがあったので、それStrFormatKBSizeですよ〜と返したのですが、Shell APIにはこの手の便利機能が結構あります(Shell Lightweight Utility Functionsというカテゴリになります)。この辺って昔はIEとともにバージョンアップしてきた歴史があるので、「このバージョンのIEが入っていなくてはならない」という制限もあって、割と嫌われている存在でしたが、今はOSのコンポーネントになった感じなので、OSのバージョンに依存しています。IEとかOSの機能で「ちょっと便利」みたいなものはみんなここに入っているはずなので、どんなものがあるのかだけでも見ておくといいですよ。個人的にありがたいのはPath〜系の関数ですね。この手のものは使うことが割と多いのですが、自作するのはあほらしいというか、手間の割に報われないというか。
Shell Path Handling Functions (Windows)
Vista以降のExplorerではテラバイト表示にも対応していますが、それはこの辺がテラバイト表記に対応したからなんでしょうね。
StrFormatByteSizeEx function (Windows)
それはさておき、ファイル関係の操作するとき、PathCombineとか、ほんとありがたく使ってます。
この辺のAPIは引数の使い方もinoutが多く、ほかのAPIとはちょっと毛色が違う印象ですね。あと、使用例がドキュメントに多いのもやや意外です。というか、この辺は単発で使い方が説明できるものが多いというのもあるのでしょうけれど。
余計な苦労している人は是非どうぞ。長いパスに対応していないとかありますけど、.NETのBCLでも長いパスに対応してないしと言って、逃げる(^^;。でも次のBCLでは長いパスに対応しそうだよなー。