试图从我局域网中的 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 使用的)。