Swift 3(忘了關於NSURL)。
let fileName = "20-01-2017 22:47"
let folderString = "file:///var/mobile/someLongPath"
要製作出URL字符串:
let folder: URL? = Foundation.URL(string: folderString)
// Optional<URL>
// ▿ some : file:///var/mobile/someLongPath
如果我們要添加的文件名。請注意,appendingPathComponent()會自動添加百分號編碼:
let folderWithFilename: URL? = folder?.appendingPathComponent(fileName)
// Optional<URL>
// ▿ some : file:///var/mobile/someLongPath/20-01-2017%2022:47
當我們希望有串,但沒有根部分(注意是百分號編碼將自動刪除):
let folderWithFilename: String? = folderWithFilename.path
// ▿ Optional<String>
// - some : "/var/mobile/someLongPath/20-01-2017 22:47"
如果我們要保持我們這樣做的基礎部分(但介意%的編碼 - 它不會被刪除):
let folderWithFilenameAbsoluteString: String? = folderWithFilenameURL.absoluteString
// ▿ Optional<String>
// - some : "file:///var/mobile/someLongPath/20-01-2017%2022:47"
手動添加的百分比編碼字符串:
let folderWithFilenameAndEncoding: String? = folderWithFilename.addingPercentEncoding(withAllowedCharacters: CharacterSet.urlQueryAllowed)
// ▿ Optional<String>
// - some : "/var/mobile/someLongPath/20-01-2017%2022:47"
要刪除百分號編碼:
let folderWithFilenameAbsoluteStringNoEncodig: String? = folderWithFilenameAbsoluteString.removingPercentEncoding
// ▿ Optional<String>
// - some : "file:///var/mobile/someLongPath/20-01-2017 22:47"
百分號編碼的很重要,因爲網絡請求的URL需要他們,而URL到文件系統並不總是可行的 - 這取決於實際方法使用它們。這裏需要注意的是,它們可能會被自動刪除或添加,所以更好地仔細調試這些轉換。
優秀使用。或者現在在Swift中:'URL(string:urlstring)' – 2017-04-27 03:34:00