わびさびサンプルソース

WindowsやHTML5などのプログラムのサンプルコードやフリーソフトを提供します。

複数階層のディレクトリを一度に作成する

CreateDirectory()関数では、複数の階層のディレクトリは一度に作成できませんでしたが、 SHCreateDirectoryEx()関数を使うと、複数の階層のディレクトリを一度に作成できます。

#include <stdio.h>
#include <tchar.h>
#include <iostream>
#include <windows.h>
#include <Shlobj.h>



/*
	複数階層のディレクトリを一度に作成する
*/
int _tmain
(
	  int argc
	, _TCHAR* argv[]
)
{
	// std::wcoutのロケールを設定
	std::wcout.imbue( std::locale( "", std::locale::ctype ) );

	// ディレクトリの作成(複数階層)
	int nRet = ::SHCreateDirectoryEx( NULL, L"r:¥¥folder1¥¥folder2¥¥folder3", NULL );
	if ( nRet == ERROR_SUCCESS ) {

		// 作成できました。
		std::wcout << L"作成できました。" << std::endl;
	}
	else if ( nRet == ERROR_ALREADY_EXISTS ) {

		// 既に存在していました。
		std::wcout << L"既に存在していました。" << std::endl;
	}

	// 正常終了
	return( 0 );
}

実行結果

作成できました。






わびさびサンプルソース

WindowsやHTML5などのプログラムのサンプルコードやフリーソフトを提供します。