如何将从ftp URL检索的数据转换为Swift中的可用对象

问题描述 投票:0回答:1

我正在尝试解析从ftp目录中检索的一系列不同文件:ftp://ftp.bom.gov.au/anon/gen/radar/

文件类型包括:.png,.gif,.shtml,.html和.json。

我有原始的Data

let url = URL(string: "ftp://ftp.bom.gov.au/anon/gen/radar/")
    var data: Data? = nil
    if let anUrl = url {
        do {
            try data = Data(contentsOf: anUrl)

        }
        catch {
        }
    }

但我无法弄清楚如何将数据解析为单个对象。

我可以看到他们在那里使用:

if let actualData = NSString(data: data!, encoding: String.Encoding.utf8.rawValue) {
                print(actualData)
            }

打印到控制台:

-rw-rw-r--    1 1050     1502         5842 Apr 05 00:14 IDR784.T.201904050012.png

-rw-rw-r--    1 1050     1502         5774 Apr 05 00:20 IDR784.T.201904050018.png

-rw-rw-r--    1 1050     1502        19176 Apr 05 00:20 IDR784.gif

-rw-rw-r--    1 1050     1502        17796 Apr 04 23:01 IDR78I.T.201904042301.png

对于5000多个文件(大约30mb),Data包含。

我已经搜遍了我能想到的任何地方,包括苹果CFNetwork编程指南 - 使用FTP服务器,但无法做出正面或反面。

任何指导都将非常感谢。

ios swift ftp nsdata
1个回答
0
投票

如前所述,您应该使用URLSession来下载数据而不是Data(contentsOf :)。如果继续当前路径,则可能需要设置NSRegularExpression来解析数据。首先使用.components(separatedBy: .newlines)将大字符串拆分为字符串数组。然后使用正则表达式匹配您要查找的文件名。

您可能会发现使用FTP库更容易,而不仅仅是生成原始请求。快速搜索找到了这个潜在的选择:

https://github.com/Constantine-Fry/rebekka

© www.soinside.com 2019 - 2024. All rights reserved.