swift打印字符串插值和文件夹路径

时间:2016-01-28 21:47:09

标签: string swift interpolation

在swift中如何使用字符串插值指定本地文件的路径。 当我做类似以下的事情时

let fileName = "myFile.jpg"
let fullPath = "folder/(fileName)"

我没有在文件夹和插值文件名之间得到'/',当我使用'//'时,我得到'//'而不是实际的文件名。

有什么想法吗?

3 个答案:

答案 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