Oggi un mio collega, Sebastiano, mi ha fatto notare un problema che affligge la funzione System.Environment.GetCommandLineArgs(). Questa funzione, peraltro molto utile, ritorna in un'array di stringhe la lista dei parametri della riga di comando di un eseguibile. In un caso, però, bisogna prestare un pò di attenzione, in quanto se si passano argomenti di tipo "percorso", ovvero del tipo C:\MyFolder\ si può incorrere in un banale errore.Per ricrearlo basta crere un piccolo esempio di console application ed impostare come parametri della command line:
- MySimpleConsoleApp.exe par1 par2 "C:\My Folder\AnotherFolder\Destination\" par3
Gli apici di delimitazione devono essere inseriti, in quanto nel percorso è presente uno spazio, ma... c'è un ma! La funzione GetCommandLineArgs() ritornerà i seguenti parametri:
- MySimpleConsoleApp.exe
- par1
- par2
- C:\My Folder\AnotherFolder\Destination" par3
Sì, avete letto bene...l'ultimo parametro è "sbagliato" in quanto l'accoppiata \" viene considerata un'escape di ". Il problema è facilmente risolvibile operando un raddoppio dell'ultima barra "\\" ma comunque occhi aperti quando avete a che fare con percorsi come parametri di riga di comando.