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)