2013-04-07 12 views

risposta

27
string path = "C://hello//world"; 
int pos = path.LastIndexOf("/") + 1; 
Console.WriteLine(path.Substring(pos, path.Length - pos)); // prints "world" 

Il metodo LastIndexOf esegue la stessa IndexOf .. ma dalla fine della stringa.

3

Suggerirei di guardare lo spazio dei nomi System.IO come sembra che si possa voler usare quello. C'è anche DirectoryInfo e FileInfo che potrebbero essere utili qui. Specificamente DirectoryInfo's Name property

var directoryName = new DirectoryInfo(path).Name; 
9

C'è una classe statica per lavorare con tracciati chiamate Path.

È possibile ottenere il nome file completo con Path.GetFileName.

o

È possibile ottenere il nome del file senza estensione con Path.GetFileNameWithoutExtension.

+1

avevo pensato che, a meno di notare che il PO sembra non essere concentrandosi su un file, ma una directory –

9

using System.Linq;

var s = "C://hello//world"; 
var last = s.Split('/').Last(); 
1

Prova questo:

string worldWithPath = "C://hello//world"; 
string world = worldWithPath.Substring(worldWithPath.LastIndexOf("/") + 1); 
+1

Questa è la stessa soluzione già pubblicato da Simon Whitehead (http://stackoverflow.com/a/15857606/2029849), oltre a una lunghezza esplicitamente specificata nella chiamata al metodo 'Substring'. – abto

+0

Questa è invece una soluzione più intelligente @abto – Lali

Problemi correlati