2015-04-12 52 views
0

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

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

回答

3

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

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

+0

ou,我的不好。因此,如果该文件位于Document目录中,它将获取文件data.plist的路径。 – brumbrum

+1

@ krompir2:它只是创建一个路径“.../Documents/data.plist”,无论该文件是否存在。它甚至不检查Documents目录是否存在。 –