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

时间:2019-04-05 00:43:32

标签: ios swift ftp nsdata

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

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

我的原始x<-makeCacheMatrix(matrix(c(1,0,0,0,1,0,0,0,2),ncol=3,nrow=3)) x$get() x$getinverse() 带有:

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)。

我搜索了很多我能想到的地方,包括Apples CFNetwork编程指南-使用FTP服务器,但是却无济于事。

任何指导将不胜感激。

1 个答案:

答案 0 :(得分:0)

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

使用FTP库,您可能会发现它不仅发出原始请求,而且更加轻松。快速搜索找到了该潜在选项:

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