Home >Backend Development >C++ >How to get file path using C++?

How to get file path using C++?

WBOY
WBOYOriginal
2024-06-02 20:15:01479browse

The methods to obtain the file path in C++ are: 1. Use the std::filesystem library. 2. Use Boost library. These methods can be used to get the absolute path, root directory, parent directory, and extension of a file. In practice, these techniques can be used to display file lists in user interfaces.

How to get file path using C++?

How to get the file path using C++

It is very important to get the file path in C++ for reading or writing files , display a list of files in the user interface, or perform other file system-related operations. There are several ways to achieve this.

Method 1: Use the std::filesystem library

std::filesystem The library provides a high-level interface for file system operations. The following example demonstrates how to use it:

#include <iostream>
#include <filesystem>

namespace fs = std::filesystem;

int main() {
    fs::path path_to_file = "/tmp/example.txt";

    // 获取文件的绝对路径
    std::cout << "Absolute path: " << path_to_file.absolute() << std::endl;

    // 获取文件的根目录
    std::cout << "Root directory: " << path_to_file.root_path() << std::endl;

    // 获取文件的父目录
    std::cout << "Parent directory: " << path_to_file.parent_path() << std::endl;

    // 获取文件的扩展名
    std::cout << "Extension: " << path_to_file.extension().string() << std::endl;

    return 0;
}

Method 2: Using the Boost library

The Boost library also provides a powerful file system library. The following example demonstrates how to use it:

#include <boost/filesystem.hpp>

int main() {
    boost::filesystem::path path_to_file = "/tmp/example.txt";

    // 获取文件的绝对路径
    std::cout << "Absolute path: " << path_to_file.generic_string() << std::endl;

    // 获取文件的根目录
    std::cout << "Root directory: " << path_to_file.root_directory() << std::endl;

    // 获取文件的父目录
    std::cout << "Parent directory: " << path_to_file.parent_path() << std::endl;

    // 获取文件的扩展名
    std::cout << "Extension: " << path_to_file.extension() << std::endl;

    return 0;
}

Practical example: displaying a list of files in the user interface

The following is a simple C++ program that displays using the above technique File list in user interface:

#include <iostream>
#include <filesystem>

int main() {
    // 获取当前工作目录
    std::filesystem::path current_path = std::filesystem::current_path();

    // 获取目录中的所有文件
    std::vector<std::string> files;
    for (const auto& entry : std::filesystem::directory_iterator(current_path)) {
        if (entry.is_regular_file()) {
            files.push_back(entry.path().string());
        }
    }

    // 显示文件列表
    std::cout << "Files in the current directory:" << std::endl;
    for (const auto& file : files) {
        std::cout << " - " << file << std::endl;
    }

    return 0;
}

The above is the detailed content of How to get file path using C++?. For more information, please follow other related articles on the PHP Chinese website!

Statement:
The content of this article is voluntarily contributed by netizens, and the copyright belongs to the original author. This site does not assume corresponding legal responsibility. If you find any content suspected of plagiarism or infringement, please contact admin@php.cn