【问题标题】:Is createDirectory(at:withIntermediateDirectories:attributes:) atomic in SwiftSwift 中的 createDirectory(at:withIntermediateDirectories:attributes:) 是原子的吗
【发布时间】:2020-02-03 12:02:15
【问题描述】:

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

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

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

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

【问题讨论】:

  • 方法抛出。只需处理错误
  • 当您询问 atomically/non 时,您应该担心线程操作中的某件事,在 try 内部创建后,控制权不会转到下一行,并且有一些文件仍在创建中

标签: swift


【解决方案1】:

你说:

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

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

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

然后你问:

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

嗯,很明显,如果它可以抛出错误,它就会失败。

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

【讨论】:

    猜你喜欢
    • 2014-08-01
    • 2012-03-23
    • 1970-01-01
    • 2011-03-03
    • 2010-12-11
    • 2020-05-07
    • 2013-01-26
    相关资源
    最近更新 更多