ios - 在 SwiftUI 中使用 FileManager 列出文档
问题描述
我正在尝试列出我添加到 Xcode 项目中的所有 pdf 文档。我有一个单独的函数,它获取所有带有扩展名的文档,pdf
然后files
在函数内附加一个变量。然后我尝试使用访问files
然后@State
列出数组中的所有项目,但我不确定如何访问files
函数中的变量然后将其添加到列表中?我哪里错了?
struct PDFList: View {
@State var files = GetFiles()
var body: some View {
VStack{
ForEach(0..<files.count, id: \.self) { item in
Text(files[item])
}
}
}
}
func GetFiles() -> Array<URL> {
var files: [String] = []
let documentsUrl = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
do {
let directoryContents = try FileManager.default.contentsOfDirectory(at: documentsUrl, includingPropertiesForKeys: nil)
let pdfFiles = directoryContents.filter{ $0.pathExtension == "pdf" }
let pdfFileNames = pdfFiles.map{ $0.deletingPathExtension().lastPathComponent }
files.append(contentsOf: pdfFileNames)
} catch {
print(error)
}
}
解决方案
添加退货
func getFiles() -> Array<String> {
var files: [String] = []
let documentsUrl = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
do {
let directoryContents = try FileManager.default.contentsOfDirectory(at: documentsUrl, includingPropertiesForKeys: nil)
let pdfFiles = directoryContents.filter{ $0.pathExtension == "pdf" }
let pdfFileNames = pdfFiles.map{ $0.deletingPathExtension().lastPathComponent }
files.append(contentsOf: pdfFileNames)
} catch {
print(error)
}
return files
}
推荐阅读
- html - 如何在 vscode 的 HTML 文件中指定错误应该被忽略?
- javascript - 赛普拉斯不工作,客户端请求时出现错误 500
- kotlin-native - 在 Kotlin Multiplatform Mobile 的共享代码中实现计时器
- python - 计算一系列日期的值然后在 python 中绘制它的最佳方法是什么?
- php - 当我单击表格中的一行时,打开带有数据的模式
- node.js - 我如何解决 npm 错误“npm ERR!代码生命周期”
- java - 如何使用脚本获取每个请求的会话创建时间
- c++ - 在 C++ 中使用 pugi 库解析数据
- python - Heroku Python 应用程序突然出现 R15 错误
- sharepoint - CAML 查询返回所有列表项