2015-09-27 28 views
7

在SWIFT1,我們可以得到由下面的代碼不帶擴展名的文件簡稱:重大更改,以獲得文件名,而不擴展在Swift2

self.name = pathFilename.lastPathComponent.stringByDeletingPathExtension 

雖然我更新斯威夫特2,該API不再可用。警告消息,我必須使用NSURL。所以新的代碼將是:

var filename = NSURL(fileURLWithPath: str).lastPathComponent 
filename = NSURL(fileURLWithPath: filename!).URLByDeletingPathExtension?.relativePath 

這是太複雜的API破的變化。有沒有更好的方法可以使它更簡單?

回答

18

爲什麼不:

self.name = NSURL(fileURLWithPath: str).URLByDeletingPathExtension?.lastPathComponent 

我不流利的斯威夫特因此可能會有一些缺失!?需要在那裏。

+0

你是對的。謝謝。 – Howard

4

雨燕2.2這項工作:

let nameOnly = (fileName as NSString).stringByDeletingPathExtension 
let fileExt = (fileName as NSString).pathExtension 
1

斯威夫特4

let url = URL(string: "https://example.com/myFile.html") 
if let fileName = url?.deletingPathExtension().lastPathComponent { 
    // fileName: myFile 
    self.name = fileName 
}