I try to call the fileManager.createFileAtPath
-method, but it always fails.
My variable success
is always false
. I looked at some simi
Make sure that you try to create file in folder that already exists. First create folder, then you can create file at that path.
private class func assureDirPathExists(path: String)
{
if !NSFileManager.defaultManager().fileExistsAtPath(path)
{
do {
try NSFileManager.defaultManager().createDirectoryAtPath(path, withIntermediateDirectories: false, attributes: nil)
} catch let error as NSError {
print(error.localizedDescription)
}
}
}
Make sure you are writing file relatively to user domain folder.
// i.e. Caches, Documents...
let rootPath = NSSearchPathForDirectoriesInDomains(.CachesDirectory, .UserDomainMask, true)
Probably, you are missing the slash character, or you skip some folder creation first.
If you have ...dir1/dir2/file.ext than you need to create dir1, then dir2 and finally file.ext.
Here is a problem:
if fileManager.fileExistsAtPath(String(pListPath), isDirectory: &isDir)
You cannot use String(...)
to convert a NSURL
to a file path string,
you have to use the path
method:
if fileManager.fileExistsAtPath(pListPath.path!, isDirectory: &isDir)
If reportsPath
is also an NSURL
then the same problem exists at
pListPath = NSURL(fileURLWithPath: String(reportsPath)).URLByAppendingPathComponent("myReports.plist", isDirectory: false)
which should be
let pListPath = reportsPath.URLByAppendingPathComponent("myReports.plist", isDirectory: false)