更改URL最后一个组件名称并将扩展名添加到重命名的组件名称

时间:2017-07-28 08:34:05

标签: ios swift3 nsstring nsurl

我有以下file:///Users/ivancantarino/Library/Developer/CoreSimulator/Devices/CCE2FCA5-05F0-4BB7-9A25-CBC168398A62/data/Containers/Data/Application/E48179F9-84FB-4CB3-B993-1E33FCFB5083/Library/Caches/CloudKit/34af81edf8344be1cf473ef394e06ccc8e1bc8cf/Assets/AE86E028-E4E0-45D5-B5FE-BAE975D07F2A.0166f7df06d2562d8d53e70a3779a46de3769584c3

func extractAndBreakFilenameInComponents(fileURL: NSURL) { let fileURLParts = fileURL.path!.components(separatedBy: "/") let fileName = fileURLParts.last print("filename:", fileName) // prints: AE86E028-E4E0-45D5-B5FE-BAE975D07F2A.0166f7df06d2562d8d53e70a3779a46de3769584c3 }

我试图重命名此网址的最后一部分,但仍然有一个网址,不仅仅是文件名。

我已设法使用以下代码访问最后一部分:

fileName

我想将myFile.pdf更改为URL,但保留Expectation

这是一个简单的URL重命名,而不是创建一个新的,只是更改现有的

最好的方法是什么?

谢谢

2 个答案:

答案 0 :(得分:1)

您也可以这样做

var url = URL.init(string: "http://www.example.com/test123")

url?.deleteLastPathComponent()
url?.appendPathComponent("file.pdf")


print(url)
  

输出:http://www.example.com/file.pdf

希望对你有所帮助

修改

您需要使用以下代码重命名文件

1)创建复制并更新最后一个组件

var urlNew = URL.init(string: "http://www.example.com/test123")

urlNew?.deleteLastPathComponent()
urlNew?.appendPathComponent("file.pdf")



              do {
                    try FileManager.default.moveItem(atPath: oldURL!, toPath: urlNew)
                } catch {

                }

答案 1 :(得分:0)

你可以这样做

let fileName = fileURLParts.last
    var newPath = ""
    for i in 0 ..< fileURLParts.count 
    {
        if i == (fileURLParts.count-1) {
            newPath.append(fileName)
        }else{
            newPath.append(fileURLParts[i])
        }

    }