首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >由于文件“不存在”,Swift MoveItem失败

由于文件“不存在”,Swift MoveItem失败
EN

Stack Overflow用户
提问于 2020-11-16 02:21:17
回答 2查看 406关注 0票数 1

因此,我试图在我的应用程序中重命名一个文件夹,但moveItem方法的行为很奇怪。下面是我的代码:

代码语言:javascript
运行
AI代码解释
复制
try FileManager.default.moveItem(at: FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].appendingPathComponent("parentFolder").appendingPathComponent("folderIWantToMove"), to: FileManager.default.urls(for: .applicationDirectory, in: .userDomainMask)[0].appendingPathComponent("parentFolder").appendingPathComponent("newFolderName"))

此操作失败,调试器中的消息为:

代码语言:javascript
运行
AI代码解释
复制
“folderIWantToMove” couldn’t be moved to “parentFolder” because either the former doesn’t exist, or the folder containing the latter doesn’t exist.

但是当我在lldb中运行这段代码时:

代码语言:javascript
运行
AI代码解释
复制
print FileManager.default.fileExists(atPath: FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].appendingPathComponent("parentFolder").appendingPathComponent("folderIWantToMove").path)

代码语言:javascript
运行
AI代码解释
复制
print FileManager.default.fileExists(atPath: FileManager.default.urls(for: .documentDirectory, in: .userDomainMask)[0].appendingPathComponent("parentFolder").path)

两者都返回true,这意味着两个文件夹都存在。我读过其他一些类似问题的问题,他们中的大多数人说这是因为沙箱。如果是这种情况,我如何才能更改和删除用户文档目录中的文件的名称?

以防万一,我用的是swift 5,在iPad上运行所有的东西,iPadOS 13来自Xcode12测试版。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-11-16 04:31:20

问题是你没有重命名它,你试图将你的目录从你的documents目录中移到你捆绑包之外的应用程序目录中,并且无法从iOS中的应用程序中访问。

代码语言:javascript
运行
AI代码解释
复制
let document = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
let parentFolder = document.appendingPathComponent("parentFolder")
let folderIWantToMove = parentFolder.appendingPathComponent("folderIWantToMove")
do {
    try FileManager.default.createDirectory(at: folderIWantToMove, withIntermediateDirectories: true, attributes: nil)
    print("folder and sub folder created")
    print("folderIWantToMove path:", folderIWantToMove.path)
    // renaming it
    let newFolderName = parentFolder.appendingPathComponent("newFolderName")
    try FileManager.default.moveItem(at: folderIWantToMove, to: newFolderName)
    print("folder renamed to:", newFolderName.path)
} catch {
    print(error)
}
票数 1
EN

Stack Overflow用户

发布于 2020-11-16 03:32:24

我也遇到过同样的文件问题,但在macOS上。我通过添加"com.apple.security.files.user-selected.read-write“授权并将其设置为true来修复它。我希望这能帮到你!(另外,请确保将应用程序沙箱授权设置为false)

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/64851902

复制
相关文章
IFS变量对加双引号和不加双引号变量的区别对待
IFS 变量是一个特殊的环境变量,叫做内部域分隔符。IFS 环境变量定义了 bash shell 用作字段分隔符的一系列字符。如果 bash shell 在数据中看到了这些字符中的任意一个,它就会假定这表明了列表中一个新数据字段的开始。默认情况下 IFS 指定为空白符(即空格、tab 符、换行符)。
hotarugali
2022/02/28
3.5K0
字符串 str 包含单个数组带的双引号怎么处理?
要将字符串 "[["121.489764476833","31.3215977774656"]]" 中的双引号去掉,并将内部的经纬度值变为数字类型,你可以使用以下代码:
王小婷
2023/08/26
3410
字符串 str 包含单个数组带的双引号怎么处理?
parse_str() 函数把查询字符串解析到变量中。
注释:php.ini 文件中的 magic_quotes_gpc 设置影响该函数的输出。如果已启用,那么在 parse_str() 解析之前,变量会被 addslashes() 转换。
全栈程序员站长
2022/07/07
7310
parse_str() 函数把查询字符串解析到变量中。
Shell双引号,单引号和无引号的区别
无引号 不使用引号定义字符串时,字符串不能包含空白字符(如Space或Tab),需要该加引号,一般连续的字符串,数字,路径等可以不加引号。如果内容中有命令、变量等,会先把变量、命令解析出结果,然后在输出最终内容。 > RUMENZ1="入门 小站" > RUMENZ2=入门小站 > RUMENZ3=入门 小站 #直接报错 可见,字符串中包含有空格时必须用引号括起来,将无法正常输出。 必须使用双引号("")和单引号('')的场景 在变量赋值时,如果有空格,Shell会把空格后面的字符串解释为命令 > RUME
入门笔记
2021/01/01
5.9K0
delphi字符串加引号_oracle 单引号
sp_qry.Close; sp_qry.SQL.Clear; sp_qry.SQL.Add(‘select * from item_info where item_clsno=’+quotedstr(sp_lb.KeyValue)); sp_qry.Open;
全栈程序员站长
2022/11/10
1.4K0
Golang 单引号、双引号和反引号
Golang限定字符或者字符串一共三种引号,单引号(’’),双引号("") 以及反引号(``)。反引号就是标准键盘“Esc”按钮下面的那个键。
twowinter
2020/04/16
15.5K0
C++单双引号
  我们常用的「单引号」一般用在「字符」(实际上代表的是整数),而「双引号」用在「字符串」。
Qt君
2020/05/08
1.7K0
MySQL中的单引号和双引号
《请注意前方高能有引号!》提到过Oracle中引号的处理,其实不仅是Oracle,其他的数据库中,同样存在引号是否使用正确的问题,看到社区的这篇文章,就介绍了MySQL中对单引号和双引号的几种使用场景,可以借鉴学习。
bisal
2023/01/08
4.6K0
MySQL中的单引号和双引号
Shell双引号和单引号的区别
Shell在使用的过程中,经常会使双引号或者单引号将字符串括起来,也可以不使用引号来定义字符串变量。示例如下:
恋喵大鲤鱼
2019/03/05
3.1K0
关于C++中string,char ,双引号之下的字符,单引号下的字符 的对比与探讨 +字符串拼接。
关于如何C++如何输出变量数据类型https://blog.csdn.net/IT_flying625/article/details/103380022
种花家的奋斗兔
2020/11/13
2.8K0
关于C++中string,char ,双引号之下的字符,单引号下的字符 的对比与探讨  +字符串拼接。
【Python】字符串 ① ( Python 字符串定义形式 | 单引号定义法 | 双引号定义法 | 三引号定义法 | 字符串中包含单引号或双引号的处理方式 )
文章目录 一、Python 字符串定义形式 二、字符串中包含 单引号 / 双引号 一、Python 字符串定义形式 ---- Python 字符串定义形式 : 单引号定义法 : name = 'Tom' 双引号定义法 : name = "Tom" 三引号定义法 : 该定义方式与多行注释相同 , 使用 三引号 定义字符串 : 如果使用变量接收 , 那么定义的就是字符串 ; 如果没有变量接收 , 那么定义的就是多行注释 ; name = """Tom""" 代码示例 : # 单引号定义字符串 nam
韩曙亮
2023/04/07
3.2K0
【Python】字符串 ① ( Python 字符串定义形式 | 单引号定义法 | 双引号定义法 | 三引号定义法 | 字符串中包含单引号或双引号的处理方式 )
Python 引号、注释、字符串
Python3.6.3    json==2.0.9    win10.0.17134
用户7886150
2021/01/13
9490
变量和字符串
4、变量的命名可以去命名任何合法的名字,但作为一个优秀的程序员,请将尽量给变量取个专业些的名字。
清菡
2020/12/02
8420
变量和字符串
[oeasy]python0052_ raw格式字符串_单引号_双引号_反引号_ 退格键
转义字符回忆上次内容最近玩的是\n、\r 之外的转义序列 \a是 ␇ (bell)\t是 水平制表符\v是 换行不回车通过 16 进制数值转义 \xhh把(hh)16 进制对应的 ascii 字符输出通过 8 进制数值转义 \ooo把(nnn)8 进制对应的 ascii 字符输出这次加了 转义输出 反斜杠本身 \\ 输出 \总是转义 还是挺麻烦的能否直接输出原样输出呢?搜索帮助找到raw stringrawr的含义是 raw原始原样如果是有r就原样输出为什么raw就是原始原样呢?raw生的食物 没有
oeasy
2023/01/17
1.7K0
[oeasy]python0052_ raw格式字符串_单引号_双引号_反引号_ 退格键
C++和Java的变量对比
C++和Java的变量对比 本贴创建的原因是本人需要做一个C++和Java之间进行socket通信的时候想要确定一下两者之间变量的内存占用情况,经过验证测试得出的结果用于以后用来进行验证 本次的结果均是在32位系统中得到的,64位的操作系统的内存占用情况可能有所不同! 对比的表格如下: C++ usage Java usage short 2 bytes short 2 bytes int 4 bytes int 4 bytes long 4 bytes long 8 bytes long lon
impressionyang
2020/08/26
4330
【说站】php双引号和单引号的区别
字母、下划线的特殊字符,或者用{}把变量括起来,否则变量名后面的部分会作为一个整体,造成语法错误。
很酷的站长
2022/11/24
2.8K0
【说站】php双引号和单引号的区别
shell字符串单双引号的坑
运行非常成功!结果正常输出!然后我就愉快地去重并call variant,但是当我查看g.vcf文件时发现样本名为W0
生信技能树
2021/02/04
5K0
C++字符串变量的运算 | 使用+输出两个字符串变量
在上一节《C++字符串处理函数》中小林讲过:在以字符数组存放字符串时,字符串的运算要用字符串函数,如strcat strcmp、strcpy。
用户7886150
2021/02/08
1.9K0
点击加载更多

相似问题

解析带空格和引号的字符串(保留引号)

33

解析带双引号的字符串

23

带regex的Java引号字符串解析

23

带双引号和单引号的字符串

31

用Nom 5解析带转义引号的单引号字符串

11
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文