我按照Swift项目UsingFiles github和它的video在我的SwiftUI项目中写文件,UsingFiles项目可以写文件到Files APP中,写的文件可以在Files APP中看到,但是我按照下面的代码,在Files APP中看不到文件。
let file = "\(UUID().uuidString).txt"
let contents = "Some text..."
let dir = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
let fileURL = dir.appendingPathComponent(file)
do {
try contents.write(to: fileURL, atomically: false, encoding: .utf8)
}
catch {
print("Error: \(error)")
}
正在写入文件的UsingFiles为file:///Users/fmac/Library/Developer/CoreSimulator/Devices/11111111-881E-488A-9571-E61B83EB6062/data/Containers/Data/Application/11111111-AF89-4B15-B3B5-E13A63A19F8D/Documents/E018F056-83EA-4D70-87C4-16F755AA404A.txt
。
我的书写文件是file:///Users/fmac/Library/Developer/CoreSimulator/Devices/11111111-881E-488A-9571-E61B83EB6062/data/Containers/Data/Application/11111111-B191-4ACD-98B1-004E619C2EC7/Documents/C9E0F52E-040F-4647-94A3-88E0DA171AB5.txt
我可以在目录UsingFiles
中找到UsingFiles的写入文件,如下所示:
但是我在SwiftUI项目中找不到Files APP中的写文件,是不是SwiftUI中的代码有问题?为什么我找不到Files APP中的写文件?
3条答案
按热度按时间ajsxfq5m1#
我用UIActivityViewController在我的手机上保存了一个文件。它很简单,也很好用。
g2ieeal72#
正如我已经在评论中发布的那样,你不能以编程方式将文件保存到你的应用程序包之外。你可以使用一个
UIDocumentInteractionController
,并要求用户选择文件应该写入的位置。因此,如果您使用SwiftUI,这会比常规的故事板方法稍微复杂一些,正如您在post中所看到的,因为您需要为
UIDocumentInteractionController
实现UIViewControllerRepresentable
:及其协调员:
现在您可以创建DocumentInteraction视图及其预览:
您还需要这些助手:
Sample project
bxjv4tth3#
尝试添加“应用程序支持iTunes文件共享”和“支持就地打开文档”到“info.plist”。并将它们的值更改为true。