通过Internet在多个文件中有一行。我想避免下载整个文件。每个文件可以长或短。所需行通常大约是第15行-总是不同的,但总是在前500个字节内。
有没有办法只获取远程文件的顶部?
然后我可以使用regex模式来查找所需的行。
虽然我知道如何在临时下载文件。把它复制到一个合适的位置,我觉得这个过程太多太浪费了。
这是一个例子:
class func load(url: URL, to localUrl: URL, completion: @escaping () -> ()) {
let sessionConfig = URLSessionConfiguration.default
let session = URLSession(configuration: sessionConfig)
let request = try! URLRequest(url: url, method: .get)
let task = session.downloadTask(with: request) { (tempLocalUrl, response, error) in
if let tempLocalUrl = tempLocalUrl, error == nil {
// Success
if let statusCode = (response as? HTTPURLResponse)?.statusCode {
print("Success: \(statusCode)")
}
do {
try FileManager.default.copyItem(at: tempLocalUrl, to: localUrl)
completion()
} catch (let writeError) {
print("error writing file \(localUrl) : \(writeError)")
}
} else {
print("Failure: %@", error?.localizedDescription);
}
}
task.resume()
}
另外,如果您可以包括一个方法来查找以“abc=xyz”开头的行,在这里我需要“xyz”,这也是很有帮助的。