我正在尝试解析从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服务器,但无法做出正面或反面。
任何指导都将非常感谢。
如前所述,您应该使用URLSession来下载数据而不是Data(contentsOf :)。如果继续当前路径,则可能需要设置NSRegularExpression来解析数据。首先使用.components(separatedBy: .newlines)
将大字符串拆分为字符串数组。然后使用正则表达式匹配您要查找的文件名。
您可能会发现使用FTP库更容易,而不仅仅是生成原始请求。快速搜索找到了这个潜在的选择: