首页 > 解决方案 > iOS Swift:带有特殊字符的文件和文件夹的名称

问题描述

我正在制作文件管理器应用程序,它允许用户创建和移动文件。当文件名或目录名包含特殊字符、表情符号或非英文字母时,我在移动文件时遇到问题。但是我看到有很多应用程序允许创建名称中包含这些字符的文件夹和文件并移动它们。为什么我不能这样做?

我将文件移动到名称为表情符号的文件夹中。例如,此代码不会产生错误,但在目标文件夹文件中不出现:

try FileManager.default.moveItem(atPath: atPath, toPath: toPath)

在路径:

/var/mobile/Containers/Data/Application/99F4B9F3-6EEB-4CA6-8BFF-73E761213C08/Documents/%E2%9D%A4%EF%B8%8F/201902180150250650.pdf

到路径:

/var/mobile/Containers/Data/Application/0702B04A-BC80-451F-BF84-A668D1990BBA/Documents/%F0%9F%8E%81/201902180148461430.pdf

%F0%9F%8E%81 是文件夹的名称,它是“gift emoji”,但我使用编码替换了 emoji:

 addingPercentEncoding(withAllowedCharacters: NSCharacterSet.urlPathAllowed)!

如果我从文件夹名称中删除 % - 它可以工作,但之后我将无法将其转换为原始名称

标签: iosswiftfilensfilemanagerfile-management

解决方案


推荐阅读