微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

如何使用Swift在任意位置创建文件?

如何解决如何使用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

Create empty file swift

Read and write a String from text file

TLDR:给定绝对路径,如何在PC上的任意位置创建文本文件/具有随机扩展名的文件

如果有人能解释为什么与此有关的所有教程都与文档目录有关,我也将不胜感激。为什么这么重要?

谢谢!

解决方法

这很可能是因为您的应用已被沙箱化。

转到您的项目设置,选择macOS目标并转到“签名和功能”。您应该会看到类似这样的内容:

enter image description here

如果您的应用需要在任意位置创建文件,则必须通过单击右上角的“ x”来删除应用沙箱。请注意,这将导致您的应用程序被Mac App Store拒绝。

如果要将应用程序上载到Mac App Store,则必须保留沙箱并仅写入“用户选择的位置”。选择“读取/写入”而不是“用户选择的文件”旁边的“只读”。 (尽管它说的是“文件”,但它也包括目录)。这使您可以使用NSSavePanel之类的东西来写入用户选择的位置。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。