emaworks tech blog

プログラムや技術ネタを投稿しています。

【MakeSureDirectoryPathExists】多階層フォルダを1命令で作成する方法

多階層フォルダを関数1つで作成する方法

CreateDirectoryだと1発で多階層フォルダを作れない。

例えば fruits/apple/red のようなフォルダを作成したい場合、
CreateDirectoryを使用する場合は、fruits、apple、red と1つずつフォルダを作っていく必要がある。

MakeSureDirectoryPathExistsを使用すれば1度に作ってくれて便利なのです。

関数

BOOL IMAGEAPI MakeSureDirectoryPathExists(
  [in] PCSTR DirPath
);

使用例

#include <imagehlp.h>
#pragma comment(lib, "imagehlp.lib")

auto ret = MakeSureDirectoryPathExists("D:\\fruits\\apple\\red\\")

パスの最後は「\\」で終わる必要があるので注意。
既に作成されていてもエラーになりません。

公式ドキュメント

docs.microsoft.com

【IsDebuggerPresent】デバッグ中かどうかを判別する方法

プログラムでデバッグ中かどうかを判別する方法

Visual Studioなどのデバッガが接続されているかどうかで処理を分けたい場合に使用します。
たまにありますよね。

関数

BOOL IsDebuggerPresent();

使用例

#include <debugapi.h>

if (IsDebuggerPresent())
{
    // デバッガー接続時の処理
}

公式ドキュメント

docs.microsoft.com