ios - 多次调用 stringByAppendingPathComponent() 会覆盖旧文件吗?

标签 ios objective-c swift

我创建了一个名为 dataFilePath() 的函数。此方法在 Documents 目录中创建一个文件 data.plist 并返回它的路径。我想知道..如果 data.plist 已经存在于 Documents 目录中(例如我第二次调用这个函数)这个方法是删除旧的 data.plist 并创建一个新的,还是只返回一个路径以前创建的 data.plist 文件?

func dataFilePath() -> String{
        let path = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.UserDomainMask, true)
        let documentsDirectory = path[0] as NSString
        return documentsDirectory.stringByAppendingPathComponent("data.plist")
    }

最佳答案

stringByAppendingPathComponent() 只是构建一个字符串。它不是 对文件系统进行任何访问,特别是不验证具有该名称的文件是否存在,或创建具有该名称的文件。

要检查具有给定路径的文件是否存在,请使用 NSFileManager() 方法,例如 fileExistsAtPath()

关于ios - 多次调用 stringByAppendingPathComponent() 会覆盖旧文件吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29587897/

相关文章:

iphone - 如何将 subview 从其父 View 的父 View 带到顶部

ios - 当 UICollectionView 位于 iOS 中的自定义 TableViewCell 内时,如何实现 UICollectionView 的委托(delegate)和数据源方法, Objective-C

ios - 约束动画只会向上移动,不会向下移动

ios - 被放弃的 promise 会怎样?

iphone - 当我按下标签栏的一部分时调用哪个事件?

objective-c - iOS imageWithData 调整大小为 640 x 480

swift - 对于Swift 中的Apple Watch OS,WCSession 激活完成后如何运行功能?

ios - 图像在 iPhone 8 和 8 plus 上呈现不同

ios - 为什么顶部布局指南在我的 iMessage 扩展中移动

ios - SpriteKit 无法加载以前使用过的资源