How to Create a Directory in C++

If you want to create a directory, you can call the mkdir function. If the function can create the directory for you, it returns a 0. Otherwise it returns a nonzero value. (When you run it you get a –1, but your best bet — always — is to test it against 0.)

Here’s some sample code (found in the MakeDirectory example) that uses this function:

Notice (as usual) that you used a forward slash (/) in the call to mkdir. In Windows, you can use either a forward slash or a backslash. But if you use a backslash, you have to use two of them (as you normally would to get a backslash into a C++ string).

For the sake of portability, always use a forward slash. After you run this example, you should see a new directory named abc added to the /CPP_AIO/BookV/Chapter04 directory on your system.

It would be nice to create an entire directory-tree structure in one fell swoop — doing a call such as mkdir(“/abc/def/ghi/jkl”) without having any of the abc, def, or ghi directories already existing. But alas, you can’t. The function won’t create a jkl directory unless the /abc/def/ghi directory exists. That means you have to break this call into multiple calls: First create /abc. Then create /abc/def, and so on.

If you do want to make all the directories at once, you can use the system() function. If you execute system(“mkdir\abc\def\ghi\jkl”);, you will be able to make the directory in one fell swoop.

Dummies Insider

Sign up for insider news on books, authors, discounts and more content created just for you.