Khi tôi có NSString
với /Users/user/Projects/thefile.ext
tôi muốn trích xuất thefile
với các phương pháp Objective-C.
Cách dễ nhất để làm điều đó là gì?
Khi tôi có NSString
với /Users/user/Projects/thefile.ext
tôi muốn trích xuất thefile
với các phương pháp Objective-C.
Cách dễ nhất để làm điều đó là gì?
Câu trả lời:
Lấy từ tham chiếu NSString , bạn có thể sử dụng:
NSString *theFileName = [[string lastPathComponent] stringByDeletingPathExtension];
Cuộc lastPathComponent
gọi sẽ trở lại thefile.ext
và stringByDeletingPathExtension
sẽ loại bỏ hậu tố mở rộng từ cuối.
lastPathComponent
. Cảm ơn bạn!
[[[NSFileManager defaultManager] displayNameAtPath:path] stringByDeletingPathExtension]
(sử dụng bất kỳ trình quản lý tệp nào bạn muốn). Điều này đảm bảo tên tệp được bản địa hóa chính xác và phần mở rộng đã bị xóa.
NSString *myExtension = [myString pathExtension]
Nếu bạn đang hiển thị tên tệp người dùng có thể đọc được, bạn không muốn sử dụng lastPathComponent
. Thay vào đó, hãy chuyển đường dẫn đầy đủ đến displayNameAtPath:
phương thức NSFileManager's . Điều này về cơ bản thực hiện điều tương tự, chỉ có nó định vị chính xác tên tệp và xóa phần mở rộng dựa trên tùy chọn của người dùng.
Có nguy cơ bị trễ nhiều năm và lạc đề - và mặc dù hiểu biết tuyệt vời của @ Marc, trong Swift có vẻ như:
let basename = NSURL(string: "path/to/file.ext")?.URLByDeletingPathExtension?.lastPathComponent