在Swift2中获取不带扩展名的文件名的变化性更改

8
在Swift1中,我们可以通过以下代码获取不带扩展名的文件短名称:
self.name = pathFilename.lastPathComponent.stringByDeletingPathExtension

尽管我已经升级到Swift 2,但是这个API不再可用。由于出现了警告信息,我必须使用NSURL。因此,新代码将是:

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

这是一个过于复杂的API变更,是否有更好的方法可以使它变得更简单?

3个回答

22

为什么不呢:

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

我不太熟悉Swift,所以可能会缺少一些需要的 !? 符号。


6

Swift 4

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

5

这项工作需要使用 Swift 5.5 版本:

let nameOnly = (fileName as NSString).deletingPathExtension
let fileExt  = (fileName as NSString).pathExtension

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接