在swift中如何使用字符串插值指定本地文件的路径。 当我做类似以下的事情时
let fileName = "myFile.jpg"
let fullPath = "folder/(fileName)"
我没有在文件夹和插值文件名之间得到'/',当我使用'//'时,我得到'//'而不是实际的文件名。
有什么想法吗?
答案 0 :(得分:2)
只需打印文件夹/文件路径:
let fileName = "myFile.jpg"
let fullPath = "folder/\(fileName)"
print(fullPath)
/* Prints: folder/myFile.jpg */
let fileName = "myFile.jpg"
let fullPath = "folder\\\(fileName)"
print(fullPath)
/* Prints: folder\myFile.jpg */
关于Swift中的字符串插值和转义字符,请参阅Swift Language Guide - Strings and Characters:
字符串插值
字符串插值是一种从a构造新String值的方法 通过包含的常量,变量,文字和表达式的混合 它们在字符串文字中的值。您插入的每个项目 字符串文字用一对括号括起来,前缀为a 反斜杠:
let multiplier = 3 let message = "\(multiplier) times 2.5 is \(Double(multiplier) * 2.5)"
在上面的例子中,乘数的值被插入到a中 字符串文字为
\(multiplier)
。...
字符串文字中的特殊字符
字符串文字可以包含以下特殊字符:
- 转义的特殊字符\ 0(空字符),
\\
(反斜杠),\ t(水平制表符),\ n(换行符),\ r \ n(回车),\" (双 引用)和\#39; (单引号)...
然而,正如vadian所写,处理路径组件的方法更为可取,参见例如
答案 1 :(得分:1)
我假设您正在尝试为Windows生成路径,因为正斜杠/
不会以任何方式干扰字符串插值。
在插值表达式前面的插值字符串中\
的正确表达式需要三个反斜杠:
let fullPath = "folder\\\(fileName)"
\(...)
答案 2 :(得分:0)
在游乐场中展示您可能感兴趣的API的更多乐趣:
import Foundation
let url = NSURL(fileURLWithPath: "/foo/bar/")
let fileUrl = NSURL(string: "myfile.jpg", relativeToURL: url)
fileUrl?.absoluteString
fileUrl?.absoluteURL
fileUrl?.fileURL
fileUrl?.hasDirectoryPath
fileUrl?.pathComponents