9
votes

Obtenir un répertoire parent à partir du fichier en C ++

J'ai besoin d'obtenir un répertoire parent à partir de fichier en C ++:

Par exemple:

entrée: xxx

sortie: xxx

Je peux le faire avec une fonction: xxx

mais, je veux juste savoir qu'il existe une fonction intégrée. J'utilise VC ++ 2003.

Merci d'avance.


0 commentaires

7 Réponses :


2
votes

Modification d'une chaîne constante est un comportement indéfini, alors déclarez quelque chose comme ci-dessous:

*(strrchr(str, '\\') + 1) = 0; // put extra NULL check before if path can have 0 '\' also


0 commentaires


4
votes

Une manière robuste et transversale serait d'utiliser boost :: Système de fichiers :: parent_path () . Mais évidemment, cela ajoute des frais généraux que vous ne pouvez pas désirer.

Vous pouvez également utiliser strrchr fonctionne comme ceci: xxx


0 commentaires

3
votes

sur les systèmes conformes à POSIX (* NIX) Il existe une fonction couramment disponible pour ce DirName (3) . Sous Windows, il y a _splitpath .

La fonction _splitPath brise un chemin dans ses quatre composants. xxx

donc le résultat (c'est ce que je pense que vous recherchez) serait dans dir .

Voici un exemple : xxx


0 commentaires

-3
votes

Vous pouvez utiliser DirName pour obtenir le répertoire parent Cochez cette case lien pour plus d'informations

raghu


0 commentaires

2
votes

sur les plates-formes Windows, vous pouvez utiliser pathremovefileespec ou < Un href = "https://msdn.microsoft.com/en-us/library/windows/desktop/hh707092(v=vs.85).aspx" rel = "Nofollow NOREFERRER"> PATHCCHREMOVEFILESPEC pour y parvenir. Cependant, pour la portabilité, j'irais avec les autres approches qui sont suggérées ici.


0 commentaires

5
votes

Maintenant, avec C ++ 17 est possible d'utiliser STD: : Système de fichiers :: chemin :: parent_path : xxx


0 commentaires