On peut lire le contenu de la ligne de commande de deux façons différentes. Vous vous rappelez de la méthode
Main() ? On a vu que Visual C# express générait cette méthode avec des paramètres. Et bien ces paramètres, vous ne devinerez jamais ! Ce sont les paramètres de la ligne de commande. Oh joie !
Code : C# | static void Main(string[] args)
{
}
|
La variable
args est un tableau de chaine de caractères. Sachant que chaque paramètre est délimité par des espaces, nous retrouverons chacun des paramètres à un indice du tableau différent.
Ce qui fait que si j’utilise le code suivant :
Code : C# | foreach (string parametre in args)
{
Console.WriteLine(parametre);
}
|
et que je lance mon application avec les paramètres définis précédemment, je vais obtenir :
Et voilà, nous avons récupéré les paramètres de la ligne de commande, il ne nous restera plus qu’à les traiter dans notre programme. Comme prévu, nous obtenons deux paramètres. Le premier est la chaine de caractères « Bonjour », le deuxième est la chaine de caractères « Nico ». N’oubliez pas que c’est le caractère d’espacement qui sert de délimiteur entre les paramètres.
L’autre façon de récupérer la ligne de commande est d’utiliser la méthode
Environment.GetCommandLineArgs(). Elle renvoie un tableau contenant les paramètres, comme ce qui est passé en paramètres à la méthode
Main. La seule différence, c’est que dans le premier élément du tableau, nous trouverons le chemin complet de notre programme. Ceci peut être utile dans certains cas. Si cela n’a aucun intérêt pour vous, il suffira de commencer la lecture à partir de l’indice numéro 1.
L’exemple suivant affiche toutes les valeurs du tableau :
Code : C# | foreach (string parametre in Environment.GetCommandLineArgs())
{
Console.WriteLine(parametre);
}
|
Ce qui donne :
Attention : si vous devez accéder à un indice précis du tableau, vérifiez bien que la taille du tableau le permet. N’oubliez pas que si le tableau contient un seul élément et que vous essayez d’accéder au deuxième élément, alors il y aura une erreur.
Tu as dit que c’était le caractère d’espacement qui permettait de délimiter les paramètres. J’ai essayé de rajouter le paramètre C:\Program Files\test.txt à ma ligne de commande afin de changer l’emplacement du fichier, mais je me retrouve avec deux paramètres au lieu d’un seul, c'est normal ?
Eh oui, il y a un espace entre
Program et
Files. L’astuce est de passer le paramètre entre guillemets, de cette façon :
"C:\Program Files\test.txt". Nous aurons un seul paramètre dans la ligne de commande à la place de 2.
Comme par exemple :