我正在尝试分析从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服务器,但是却无济于事。
任何指导将不胜感激。
答案 0 :(得分:0)
如上所述,您应该使用URLSession而不是Data(contentsOf :)下载数据。如果继续沿当前路径前进,则可能需要设置NSRegularExpression来解析数据。首先使用.components(separatedBy: .newlines)
将大字符串拆分为字符串数组。然后使用正则表达式匹配您要查找的文件名。
使用FTP库,您可能会发现它不仅发出原始请求,而且更加轻松。快速搜索找到了该潜在选项: