Vidéo: 009 - P1 - Comment créer une Arborescence de dossiers 2024
Si vous voulez créer un répertoire, vous pouvez appeler le Fonction mkdir. Si la fonction peut créer le répertoire pour vous, elle renvoie un 0. Sinon, elle renvoie une valeur différente de zéro. (Quand vous l'exécutez vous obtenez un -1, mais votre meilleur pari - toujours - est de le tester contre 0).
Voici un exemple de code (trouvé dans l'exemple MakeDirectory) qui utilise cette fonction:
#include #include #include using namespace std; int main () {if (mkdir ("… / abc")! = 0) {cout << "Je suis désolé, je n'étais pas" << endl; cout << "capable de créer votre répertoire" << endl; cout << "comme vous me l'avez demandé, j'espère" << endl; cout << "vous êtes encore capable de réaliser" << endl; cout << "vos objectifs dans la vie. << endl;} return 0;}
Notez (comme d'habitude) que vous avez utilisé une barre oblique (/) dans l'appel de mkdir. Sous Windows, vous pouvez utiliser une barre oblique ou une barre oblique inverse. Mais si vous utilisez une barre oblique inverse, vous devez utiliser deux d'entre eux (comme vous le feriez normalement pour obtenir une barre oblique inverse dans une chaîne C ++).
Par souci de portabilité, utilisez toujours une barre oblique. Après avoir exécuté cet exemple, vous devriez voir un nouveau répertoire nommé abc ajouté au répertoire / CPP_AIO / BookV / Chapter04 sur votre système.
Il serait bien de créer une arborescence de répertoires entière en un seul coup - en faisant un appel tel que mkdir ("/ abc / def / ghi / jkl") sans aucun des répertoires abc, def ou ghi déjà existante. Mais hélas, tu ne peux pas. La fonction ne créera pas de répertoire jkl à moins que le répertoire / abc / def / ghi existe. Cela signifie que vous devez rompre cet appel en plusieurs appels: d'abord créer / abc. Ensuite, créez / abc / def, et ainsi de suite.
Si vous voulez créer tous les répertoires à la fois, vous pouvez utiliser la fonction system (). Si vous exécutez system ("mkdir abc def ghi jkl");, vous serez en mesure de faire le répertoire d'un seul coup.