【问题标题】:File not readable from documents folder文件无法从文档文件夹中读取
【发布时间】:2017-07-05 07:42:42
【问题描述】:

我正在使用几个 c 库创建一个二进制文件,并将该文件保存在 iOS 应用程序的文档文件夹中。但是当我尝试阅读它时,它不是在阅读。我正在使用以下代码阅读。

let fileData = try NSData(contentsOfFile: filePath, options: NSData.ReadingOptions.mappedIfSafe) as Data

但这总是进入 catch 块。

【问题讨论】:

  • 什么是filePath?你得到什么错误?
  • 在你的catch块中,输入print(error)(即使你看不到一个名为'error'的变量。在catch块中,它会起作用)。告诉我们错误。
  • 请手动检查您创建的文件是否在您的文件路径中
  • 是的,由于代码更改,文件实际上没有被创建,谢谢:)

标签: ios swift


【解决方案1】:

您必须先检索您的 Document 文件夹,然后再获取文档的内容。

func readDocument(file:String) -> NSData{
        var vreturn:NSData
        if let dirs : [String] = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.AllDomainsMask, true){
            let dir = dirs[0] //documents directory
            let path = dir.stringByAppendingString(file);
            //reading
            vreturn = (try? NSData(contentsOfFile: path)) ?? NSData()
        }
        return vreturn
    }

我正在使用它来获取字符串内容,但它似乎使用 NSData 以相同的方式工作。 Simple way to read local file using Swift?

【讨论】:

    【解决方案2】:
    do {
        let videoData = try Data(contentsOf: avsset.url)
        print(videoData.count)
    } catch let err {
        print("Error:", err)
    }
    

    你必须捕获错误...

    【讨论】:

    • 既然指定为always goes into catch block,我假设有一个..
    • 由于代码更改而没有创建文件,感谢您指出愚蠢的错误:)
    猜你喜欢
    • 1970-01-01
    • 2013-02-21
    • 2018-11-12
    • 2015-11-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-08-02
    • 1970-01-01
    相关资源
    最近更新 更多