Ho una stringa del tipo: "c:\ciaociao\immagini\cane.iso" e a me servirebbe mettere in un altra stringa solo la parte "cane.iso"... come faccio?
Ho una stringa del tipo: "c:\ciaociao\immagini\cane.iso" e a me servirebbe mettere in un altra stringa solo la parte "cane.iso"... come faccio?
ci sono molti modi per farlo, il primo che mi viene in mente è quello di usare LastIndexOff('\') per ottenere l'indice della posizione dell'ultima barra e poi usare SubString() e mettere come primo parametro l'indice ottenuto e come secondo il risultato della sottrazione dell'indice dalla lunghezza della stringa (proprietà Length), quindi ricapitolando :
oppure potresti usare lo split e prendere l'ultima dimensione del risultato, oppure un altra decina di modi!codice:string stringa = "c:\ciaociao\immagini\cane.iso"; int indice = stringa.LastIndexOf('\'); (tra gli apici c'è la barra, ma credo per questioni di formattazione non venga visualizzata) int lunghezzaNome = (stringa.Length - indice); string nuovaStringa = stringa.SubString(indice,lunghezzaNome);
poi magari li provi e vedi quale sia piu' indicato al tuo scopo o quello piu' performante ecc., vedi tu.
Io userei più semplicemente le apposite classi del framework per la manipolazione dei percorsi, che supportano sia il backslash (\) che lo slash normale (/) come separatore di percorsi e sono più semplici da utilizzare.
codice:string percorsoCompleto = "c:\ciaociao\immagini\cane.iso"; string nomeFile = System.IO.Path.GetFileName(percorsoCompleto);
Amaro C++, il gusto pieno dell'undefined behavior.
Originariamente inviato da MItaly
Io userei più semplicemente le apposite classi del framework per la manipolazione dei percorsi, che supportano sia il backslash (\) che lo slash normale (/) come separatore di percorsi e sono più semplici da utilizzare.
codice:string percorsoCompleto = "c:\ciaociao\immagini\cane.iso"; string nomeFile = System.IO.Path.GetFileName(percorsoCompleto);decisamente piu' semplice
![]()