ios - Swift:如何在应用程序首次运行时将文件从应用程序包复制到 Documents 文件夹
问题描述
当应用程序第一次运行时,关于如何以编程方式将 Obj-C 中的文件从应用程序包复制到应用程序的沙盒文档文件夹(例如,此处、此处和此处)有各种示例代码和问题。
你如何在 Swift 中做到这一点?
解决方案
您可以使用FileManager API:
这是一个复制具有指定扩展名的所有文件的函数的示例:
func copyFilesFromBundleToDocumentsFolderWith(fileExtension: String) {
if let resPath = Bundle.main.resourcePath {
do {
let dirContents = try FileManager.default.contentsOfDirectory(atPath: resPath)
let documentsURL = FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first
let filteredFiles = dirContents.filter{ $0.contains(fileExtension)}
for fileName in filteredFiles {
if let documentsURL = documentsURL {
let sourceURL = Bundle.main.bundleURL.appendingPathComponent(fileName)
let destURL = documentsURL.appendingPathComponent(fileName)
do { try FileManager.default.copyItem(at: sourceURL, to: destURL) } catch { }
}
}
} catch { }
}
}
用法:
copyFilesFromBundleToDocumentsFolderWith(fileExtension: ".txt")
推荐阅读
- r - 如何将一个表中的值列表添加到 R 中的另一个表中?
- sql - SQL Server - 过去 12 个月的累计总和,但从上个月开始 (SQL Server 18)
- excel - VBA:比较整行之间的单个单元格
- jquery - 如何将 select2 初始化到不同的元素上?
- python - 跨图像通道 PyTorch 查找均值和标准差
- linux - 使用 waitpid() 的 WCONTINUED 选项的编译器错误
- html - 选项卡中的 IFrame 未加载
- python - 使用 Pandas 合并数据框
- r - R根据另一个数据框中的匹配名称替换colnames
- r - 在 R 中插值但固定一个范围