gpt4 book ai didi

Swift:在文件名中使用 "/"斜杠和 createDirectoryAtPath

转载 作者:搜寻专家 更新时间:2023-10-31 08:16:31 24 4
gpt4 key购买 nike

我有一个名为“My/Project”的文件夹。当我尝试调用 createDirectoryAtPath 时,我创建了两个文件夹“我的”,其中一个子文件夹为“项目”。

我看过终端是如何表示的:

/Users/currentuser/Documents/Projects/My\ \:\ Project

这是我的代码:

let projectName = "My / Project"
let path:NSString = "/Users/currentuser/Documents/Projects/"

let fullPath:NSString = path.stringByAppendingPathComponent(projectName)

if (!NSFileManager.defaultManager().fileExistsAtPath(fullPath:NSString))
{
do
{
try NSFileManager.defaultManager().createDirectoryAtPath(fullPath:NSString, withIntermediateDirectories: true, attributes: nil)
}
catch
{
}
}

我也试过:

projectName.stringByReplacingOccurrencesOfString("/", withString: "\:")

匹配终端,但 Xcode 提示转义序列无效。

更新 #1:对文件夹名称进行编码也失败了。

let encodedPath = projectName.stringByAddingPercentEncodingWithAllowedCharacters(NSCharacterSet.URLUserAllowedCharacterSet())
let fullPath2:NSString = path.stringByAppendingPathComponent(encodedPath!)
NSFileManager.defaultManager().fileExistsAtPath(encodedPath!)

这样做的最佳方法是什么?

最佳答案

斜线是文件系统中的路径分隔符,不允许在文件名组件中。

然而,OS X Finder 允许文件名带有斜线,这很有效通过在文件系统中转换显示文件名的斜杠“/”和冒号“:”。 (因此,您不能使用冒号用于 Finder 中的文件名。)

文件夹“My/Project”因此在文件系统中存储为“My : Project”,并将文件名中的 “/” 替换为 未转义冒号 ":" 应该解决您的问题。

(冒号在 shell 中有特殊的含义,这就是为什么你会看到\: 在终端中。)

关于Swift:在文件名中使用 "/"斜杠和 createDirectoryAtPath,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36064907/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com