如何解决如何使用Swift在任意位置创建文件?
如果有绝对路径,如何在任意位置创建文件?我想在任意位置/Users/me/random/project3/<moreStuffInThePath
中创建一个文件。我将如何去做?
我要创建目录:
try FileManager.default.createDirectory(atPath: "/Users/me/random/project3/<directoryName>"
这对于目录工作正常。
但是,用于创建文件的副本不起作用:
FileManager.default.createFile(atPath: "Users/me/random/project3/something.txt",contents: someString.data(using: .utf8)) // always returns false
我已经在创建文件时签出了其他堆栈溢出线程。我发现的所有内容都与在.documentDirectory中创建文件有关,或者已过时。
例如:How to create text file for writing
Read and write a String from text file
TLDR:给定绝对路径,如何在PC上的任意位置创建文本文件/具有随机扩展名的文件?
如果有人能解释为什么与此有关的所有教程都与文档目录有关,我也将不胜感激。为什么这么重要?
谢谢!
解决方法
这很可能是因为您的应用已被沙箱化。
转到您的项目设置,选择macOS目标并转到“签名和功能”。您应该会看到类似这样的内容:
如果您的应用需要在任意位置创建文件,则必须通过单击右上角的“ x”来删除应用沙箱。请注意,这将导致您的应用程序被Mac App Store拒绝。
如果要将应用程序上载到Mac App Store,则必须保留沙箱并仅写入“用户选择的位置”。选择“读取/写入”而不是“用户选择的文件”旁边的“只读”。 (尽管它说的是“文件”,但它也包括目录)。这使您可以使用NSSavePanel
之类的东西来写入用户选择的位置。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。