Maison >développement back-end >C++ >Comment obtenir le chemin du fichier en utilisant C++ ?

Comment obtenir le chemin du fichier en utilisant C++ ?

WBOY
WBOYoriginal
2024-06-02 20:15:01484parcourir

Les méthodes pour obtenir le chemin du fichier en C++ sont : 1. Utilisez la bibliothèque std::filesystem. 2. Utilisez la bibliothèque Boost. Ces méthodes peuvent être utilisées pour obtenir le chemin absolu, le répertoire racine, le répertoire parent et l'extension d'un fichier. En pratique, ces techniques peuvent être utilisées pour afficher des listes de fichiers dans les interfaces utilisateur.

Comment obtenir le chemin du fichier en utilisant C++ ?

Comment obtenir le chemin d'un fichier en utilisant C++

Obtenir le chemin d'un fichier en C++ est très important pour lire ou écrire des fichiers, afficher une liste de fichiers dans l'interface utilisateur ou effectuer d'autres opérations liées au système de fichiers. Il existe plusieurs façons d'y parvenir.

Méthode 1 : Utiliser la bibliothèque std::filesystem

std::filesystem La bibliothèque fournit une interface de haut niveau pour les opérations du système de fichiers. L'exemple suivant montre comment l'utiliser :

#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;
}

Méthode 2 : Utilisation de la bibliothèque Boost

La bibliothèque Boost fournit également une puissante bibliothèque de système de fichiers. L'exemple suivant montre comment l'utiliser :

#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;
}

Exemple pratique : Afficher une liste de fichiers dans l'interface utilisateur

Voici un programme C++ simple qui utilise la technique ci-dessus pour afficher une liste de fichiers dans l'interface utilisateur :

#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;
}

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn