首页 > 解决方案 > Swift 中的 createDirectory(at:withIntermediateDirectories:attributes:) 是原子的吗

问题描述

我需要确保我的文件是以原子方式编写的。

文件夹也一样吗?不可能部分写出来吗?

我查看了文档,createDirectory(at:withIntermediateDirectories:attributes:)但看不到该方法是否是原子的,或者操作是否有可能失败。

可以createDirectory(at:withIntermediateDirectories:attributes:)中途失败吗?

标签: swift

解决方案


你说:

我看不到该方法是否是原子的

它通常是一种“全有或全无”的交互方式(即,您要么有一个有效的文件 URL;要么你有创建目录的权限),但鉴于缺乏任何正式的保证,我不认为它在技术上是原子的。

但如果不是呢?它没有不完整的文件保存操作的相同含义。但是关于目录创建,您只需要知道它是失败还是成功(即它是否抛出错误)。

然后你问:

...或者操作是否有可能失败

好吧,很明显,如果它可以抛出错误,它可能会失败。

只需尝试在您没有权限的文件夹中创建一个目录。你会看到它失败。


推荐阅读