2013-04-07 13 views

Trả lời

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

Phương pháp LastIndexOf thực hiện giống như IndexOf .. nhưng từ ngày kết thúc của chuỗi.

3

Tôi khuyên bạn nên xem không gian tên System.IO vì có vẻ như bạn có thể muốn sử dụng điều đó. Có DirectoryInfo và FileInfo có thể được sử dụng ở đây, cũng có. Cụ thể DirectoryInfo's Name property

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

Có một lớp tĩnh để làm việc với Paths gọi Path.

Bạn có thể nhận được tên đầy đủ với Path.GetFileName.

hoặc

Bạn có thể nhận tên tệp mà không có tiện ích mở rộng với Path.GetFileNameWithoutExtension.

+1

Tôi đã nghĩ về điều đó, nhưng nhận thấy rằng các OP dường như không được tập trung vào một tập tin, nhưng một thư mục –

9

using System.Linq;

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

Hãy thử điều này:

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

Đây là giải pháp tương tự đã được đăng bởi Simon Whitehead (http://stackoverflow.com/a/15857606/2029849), bên cạnh độ dài được cho rõ ràng trong lời gọi phương thức 'Chuỗi con. – abto

+0

Đây là giải pháp thông minh hơn thay vì @abto – Lali