I try to call the fileManager.createFileAtPath
-method, but it always fails.
My variable success
is always false
. I looked at some similar posts here but nothing fits my needs exactly.
Here is my code:
pListPath = NSURL(fileURLWithPath: String(reportsPath)).URLByAppendingPathComponent("myReports.plist", isDirectory: false)
let data: NSData = NSData()
var isDir: ObjCBool = false
if fileManager.fileExistsAtPath(String(pListPath), isDirectory: &isDir)
{
print("File already exists")
}
else
{
let success = fileManager.createFileAtPath(String(pListPath), contents: data, attributes: nil)
print("Was file created?: \(success)")
print("plistPath: \(pListPath)")
}
Here is how i tried to fix this:
I tried to use the method
let success = NSFileManager.defaultManager().createFileAtPath(String(pListPath), contents: data, attributes: nil)
And also
let success = data.writeToFile(String(pListPath), atomically: true)
But nothing works. success
is always false
.
I also tried to give it a literal-String as a path, set contents
to nil
and I even changed the directory permissions where i want to put it to 777, but noting works. success
is always false. I hope you can me help out of this.
Any help is highly appreciate. Thank you
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)