当前位置: 首页 > 面试题库 >

fileManager.createFileAtPath总是失败

黄沈浪
2023-03-14
问题内容

我尝试调用fileManager.createFileAtPath-method,但是它总是失败。我的变量success始终是false。我在这里查看了一些类似的帖子,但没有一个完全适合我的需求。这是我的代码:

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)")
                }

这是我尝试解决的方法:

我尝试使用该方法

let success = NSFileManager.defaultManager().createFileAtPath(String(pListPath), contents: data, attributes: nil)

并且

let success = data.writeToFile(String(pListPath), atomically: true)

但是没有任何效果。success一直都是false。我还尝试给它一个文字字符串作为路径,设置contentsnil,甚至更改了我想将其设置为777的目录权限,但注意了。success永远是错误的。希望您能为您提供帮助。任何帮助都非常感谢。谢谢


问题答案:

这是一个问题:

if fileManager.fileExistsAtPath(String(pListPath), isDirectory: &isDir)

您不能使用String(...)将a转换NSURL为文件路径字符串,而必须使用以下path方法:

if fileManager.fileExistsAtPath(pListPath.path!, isDirectory: &isDir)

如果reportsPath也是,NSURL则存在相同的问题

pListPath = NSURL(fileURLWithPath: String(reportsPath)).URLByAppendingPathComponent("myReports.plist", isDirectory: false)

应该是

let pListPath = reportsPath.URLByAppendingPathComponent("myReports.plist", isDirectory: false)


 类似资料:
  • 问题内容: 我正在使用hamcrest 1.3测试我的代码。这简直是​​死。我试图对其进行测试,以确保生成的数字小于13。我有一条打印语句,其中打印了生成的数字。生成的数字始终小于13,但测试始终失败。我做错什么了吗? 这是我正在测试的代码。 这是我的测试代码。 编辑:这是故障堆栈跟踪。 问题答案: 这是帮助我解决问题的站点。 http://code.google.com/p/hamcrest/i

  • 我有一个,它扩展了一个名为的基本所有这些所做的就是创建一个位置服务客户端 和

  • 我已经安装了npm selenium驱动程序,现在我想尝试使用它。 我已经创建了一个js文件测试。js 我从控制台发送这个节点cmd $节点测试\js\test.js (节点:5648)UnhandledPromiseRejest警告:NoSuchElementError:无法定位元素:*[id="login_login_username"] 在Object.throwDecodedError(C

  • 当使用near cache时,在缓存操作正在进行时,直到第二个客户端(可能是visor)尝试连接或断开到集群为止,所有的工作都很好。 我的问题是,这是意料之中的行为吗?我们是否可以使近缓存不被绕过,或者至少在坏客户端断开连接后使用近缓存重新建立。

  • 我刚刚从Ubuntu 10.04到12.04重新安装了我的操作系统,我在Ubuntu 10.04上使用了play 2.0.1,10.04上一切正常,但是现在同样的play 2.0.1把事情搞砸了,现在每次我运行命令服务器启动,但当我击中我的应用程序的索引页,它给我以下异常: 在参加这个论坛之前,我仔细检查了一下: mysql正在运行 配置文件有一些小改动:

  • 我想打api:www.xyz.com/abc_cc/cc/userregister/newuser 这是我的代码: 接口: POJO类: 我得到了这样的回应: 我已经给出了正确的url,那么为什么只需要一半? 我已经试过了https://code.tutsplus.com/tutorials/sending-data-with-retrofit-2-http-client-for-android-