Home

How to Create a Directory in C++

|
Updated:  
2016-03-26 08:30:11
|
From The Book:  
C++ Essentials For Dummies
Explore Book
Buy On Amazon

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:

#include <iostream>
#include <stdio.h>
#include <io.h>
using namespace std;
int main()
{
    if (mkdir("../abc") != 0)
    {
        cout << "I'm so sorry. I was not" << endl;
        cout << "able to create your directory" << endl;
        cout << "as you asked of me. I do hope" << endl;
        cout << "you are still able to achieve" << endl;
        cout << "your goals in life. Now go away." << endl;
    }
    return 0;
}

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.

About This Article

This article is from the book: 

About the book author:

John Paul Mueller is a freelance author and technical editor. He has writing in his blood, having produced 100 books and more than 600 articles to date. The topics range from networking to home security and from database management to heads-down programming. John has provided technical services to both Data Based Advisor and Coast Compute magazines.

Jeff Cogswell has been an application developer and trainer for 18 years, working with clients from startups to Fortune 500 companies. He has developed courses on C++ and other technologies.