试图从我局域网中的 NAS 服务器检索目录列表
Trying to retrieve a directory list from a NAS server in my lan
我是 swift 的新手,我试图找出如何从 NAS 服务器检索目录列表到我的应用程序中。 NAS 服务器 MAC 和 iPAD 在我的局域网中。
我搜索了那个问题,但没有找到任何提示,几天以来我一直在研究这个问题。
我厌倦了使用 NSFileManger 和 enumeratorAtURL,但是当我将 URL 更改为本地 NAS 的 URL 时,我无法检索任何值。我总是得到:
操作无法完成。 (Cocoa 错误 260。)
只能访问设备目录。
这是我使用的相关代码片段:
var fileManger = NSFileManager()
var keys = [NSURLIsDirectoryKey]
let url:NSURL = NSURL(string: "http://192.168.178.55/photos/")!
var handler = {
(url:NSURL!,error:NSError!) -> Bool in
println(error.localizedDescription)
println(url.absoluteString)
return true
}
var enumarator = fileManger.enumeratorAtURL(
url, includingPropertiesForKeys:
keys, options: NSDirectoryEnumerationOptions(),
errorHandler:handler)
有什么办法可以解决这个问题吗?
问候
米格尔
NSFileManager
不处理 HTTP。它旨在与 file:
URL 一起使用。如果您的 NAS 只是通过 HTTP 呈现其文件系统的只读视图,那么您将需要使用 HTTP 请求,主要是 NSURLSession
。您如何确定文件和目录的属性取决于您的 NAS 如何公开该信息。
如果您的 NAS 正在公开 WebDAV,那么您将需要一个 WebDAV 客户端。有关示例,请参见 ConnectionKit and DAVKit(ConnectionKit 使用的)。
我是 swift 的新手,我试图找出如何从 NAS 服务器检索目录列表到我的应用程序中。 NAS 服务器 MAC 和 iPAD 在我的局域网中。
我搜索了那个问题,但没有找到任何提示,几天以来我一直在研究这个问题。
我厌倦了使用 NSFileManger 和 enumeratorAtURL,但是当我将 URL 更改为本地 NAS 的 URL 时,我无法检索任何值。我总是得到:
操作无法完成。 (Cocoa 错误 260。)
只能访问设备目录。
这是我使用的相关代码片段:
var fileManger = NSFileManager()
var keys = [NSURLIsDirectoryKey]
let url:NSURL = NSURL(string: "http://192.168.178.55/photos/")!
var handler = {
(url:NSURL!,error:NSError!) -> Bool in
println(error.localizedDescription)
println(url.absoluteString)
return true
}
var enumarator = fileManger.enumeratorAtURL(
url, includingPropertiesForKeys:
keys, options: NSDirectoryEnumerationOptions(),
errorHandler:handler)
有什么办法可以解决这个问题吗?
问候 米格尔
NSFileManager
不处理 HTTP。它旨在与 file:
URL 一起使用。如果您的 NAS 只是通过 HTTP 呈现其文件系统的只读视图,那么您将需要使用 HTTP 请求,主要是 NSURLSession
。您如何确定文件和目录的属性取决于您的 NAS 如何公开该信息。
如果您的 NAS 正在公开 WebDAV,那么您将需要一个 WebDAV 客户端。有关示例,请参见 ConnectionKit and DAVKit(ConnectionKit 使用的)。