"If a worker wants to do his job well, he must first sharpen his tools." - Confucius, "The Analects of Confucius. Lu Linggong"
Front page > Programming > How to Change the Current Working Directory in C++?

How to Change the Current Working Directory in C++?

Published on 2024-11-08
Browse:775

How to Change the Current Working Directory in C  ?

Altering the Current Working Directory in C

The need to adjust the current working directory is often encountered when working with files and I/O operations. C offers a platform-independent solution for this task through the use of the std::filesystem::current_path function.

C 17 Solution: std::filesystem::current_path

In C 17, the std::filesystem library provides a cross-platform API for file system operations. The std::filesystem::current_path function allows for both retrieving and setting the current working directory.

Example:

#include 

int main() {
    namespace fs = std::filesystem;

    // Retrieve the current working directory
    fs::path current_path = fs::current_path();

    // Set the current working directory
    fs::current_path(current_path / "new_directory");
}

In this example, we first retrieve the current working directory using the current_path function and store it in a fs::path object. We can then use this fs::path object to set the current working directory to a new path, in this case, the subdirectory "new_directory".

Compatibility

The std::filesystem library is available in C 17 and later. For older versions of C , platform-specific options are available, such as direct.h for Windows or unistd.h for UNIX/POSIX systems. However, these options lack the portability of std::filesystem::current_path.

Latest tutorial More>

Disclaimer: All resources provided are partly from the Internet. If there is any infringement of your copyright or other rights and interests, please explain the detailed reasons and provide proof of copyright or rights and interests and then send it to the email: [email protected] We will handle it for you as soon as possible.

Copyright© 2022 湘ICP备2022001581号-3