将文件导入应用后保存文件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了将文件导入应用后保存文件相关的知识,希望对你有一定的参考价值。

我有一个ios应用程序,我想保存一个文件,当Safari上的用户下载文件并选择“导入MYAPP”时,该文件将被提供给它

我已经知道我的应用程序支持该文件的部分,但是当我选择使用应用程序打开文件时,它没有被添加。

实际上没有太多关于此的文档,或者至少没有最近的文档。这是我保存文件失败的尝试:

func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?, openURL Url: NSURL, sourceApplication: String?, annotation: AnyObject?) -> Bool {

    let encrypteddata = NSData(contentsOf: Url as URL)
    if(encrypteddata != nil){

        let fileManager = FileManager.default
        let paths = (NSSearchPathForDirectoriesInDomains(.documentDirectory, .userDomainMask, true)[0] as NSString).appendingPathComponent("test.ipa")
        print(paths)
        fileManager.createFile(atPath: paths as String, contents: encrypteddata as Data?, attributes: nil)

    }
return true

}

更新:

似乎这些文件存储在应用程序沙箱容器的Documents / Inbox目录中。如何列出所有文件并阅读其内容?

答案

一旦你有URL

optional func application(_ application: UIApplication, open url: URL, 
    sourceApplication: String?, 
           annotation: Any) -> Bool

方法,您可以从此URL访问文件,或者您可以从FileManager中找到所有文档,如下所示

let documentsUrl =  FileManager.default.urls(for: .documentDirectory, in: .userDomainMask).first!
do {
    let directoryContents = try FileManager.default.contentsOfDirectory(at: documentsUrl, includingPropertiesForKeys: nil, options: [])
    print(directoryContents)
} catch let error as NSError {
    print(error.localizedDescription)
}

这将列出文档目录中的所有文件。

以上是关于将文件导入应用后保存文件的主要内容,如果未能解决你的问题,请参考以下文章

将视图和片段保存在文件中

Oracle 数据库 - 使用UEStudio修改dmp文件版本号,解决imp命令恢复的数据库与dmp本地文件版本号不匹配导致的导入失败问题,“ORACLE error 12547”问题处理(代码片段

任何更改后的 Android Firebase 数据库活动/片段正在关闭

编辑后C#保存DataGridView(覆盖导入的Excel文件)

如何将GLSurfaceView渲染保存到文件?

如何将 java 源代码保存在 xml 文件中,并在 IDE 中编辑/编译它?