Namespaces
Variants

std::filesystem:: current_path

From cppreference.net
Défini dans l'en-tête <filesystem>
path current_path ( ) ;
(1) (depuis C++17)
path current_path ( std:: error_code & ec ) ;
(2) (depuis C++17)
void current_path ( const std:: filesystem :: path & p ) ;
(3) (depuis C++17)
void current_path ( const std:: filesystem :: path & p,
std:: error_code & ec ) noexcept ;
(4) (depuis C++17)

Retourne ou modifie le chemin actuel.

1,2) Retourne le chemin absolu du répertoire de travail actuel, obtenu comme si (en format natif) par la fonction POSIX getcwd . (2) retourne path ( ) si une erreur survient.
3,4) Modifie le répertoire de travail actuel vers p , comme par la fonction POSIX chdir .

Table des matières

Paramètres

p - chemin vers lequel changer le répertoire de travail actuel
ec - paramètre de sortie pour le rapport d'erreurs dans les surcharges non levantes

Valeur de retour

1,2) Retourne le répertoire de travail actuel.
3,4) (aucun)

Exceptions

Toute surcharge non marquée noexcept peut lever std::bad_alloc si l'allocation de mémoire échoue.

1) Lance std::filesystem::filesystem_error en cas d'erreurs de l'API système sous-jacente, construit avec le code d'erreur du système d'exploitation comme argument de code d'erreur.
2) Définit un paramètre std:: error_code & au code d'erreur de l'API du système d'exploitation si un appel d'API système échoue, et exécute ec. clear ( ) si aucune erreur ne survient.
3) Lance std::filesystem::filesystem_error en cas d'erreurs de l'API système sous-jacente, construit avec p comme premier argument de chemin et le code d'erreur du système comme argument de code d'erreur.
4) Définit un paramètre std:: error_code & au code d'erreur de l'API du système d'exploitation si un appel d'API système échoue, et exécute ec. clear ( ) si aucune erreur ne survient.

Notes

Le répertoire de travail actuel est le répertoire, associé au processus, qui est utilisé comme point de départ dans la résolution des chemins d'accès pour les chemins relatifs.

Le chemin actuel, tel que renvoyé par de nombreux systèmes d'exploitation, est une variable globale dangereuse. Il peut être modifié de manière inattendue par des fonctions tierces ou des fonctions de bibliothèque système, ou par un autre thread.

Exemple

#include <filesystem>
#include <iostream>
namespace fs = std::filesystem;
int main()
{
    std::cout << "Current path is " << fs::current_path() << '\n'; // (1)
    fs::current_path(fs::temp_directory_path()); // (3)
    std::cout << "Current path is " << fs::current_path() << '\n';
}

Sortie possible :

Current path is "D:/local/ConsoleApplication1"
Current path is "E:/Temp"

Voir aussi

retourne un répertoire approprié pour les fichiers temporaires
(fonction)