Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/swift/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Arrays 用于将文件名放入数组的快速迭代webfolder_Arrays_Swift_Loops - Fatal编程技术网

Arrays 用于将文件名放入数组的快速迭代webfolder

Arrays 用于将文件名放入数组的快速迭代webfolder,arrays,swift,loops,Arrays,Swift,Loops,我想将web文件夹“mywwwaddress”的文件名放入数组中 但是println给了我一个空数组:[] func files(){ var urls : [NSURL] = [] let dirUrl = NSURL(string: "mywwwadres") let fileManager = NSFileManager.defaultManager() let enumerator:NSDirectoryEnumerator? = fileManager

我想将web文件夹“mywwwaddress”的文件名放入数组中 但是println给了我一个空数组:[]

func files(){
    var urls : [NSURL] = []
    let dirUrl = NSURL(string: "mywwwadres")

    let fileManager = NSFileManager.defaultManager()
    let enumerator:NSDirectoryEnumerator? = fileManager.enumeratorAtURL(dirUrl!, includingPropertiesForKeys: nil, options: nil, errorHandler: nil)

    while let url = enumerator?.nextObject() as! NSURL? {
        urls.append(url)
    }

    println(urls)
}

当我在本地文件系统上用一个目录的URL尝试你的代码时,它对我来说工作正常,所以你可能想做更多的错误处理,看看到达你正在使用的URL是否有问题

此外,由于
nsemulator
符合
SequenceType
,因此可以在
中使用
for…或在其上使用其他序列处理操作,如
map
,这可以稍微简化代码

下面是一个包含更多错误处理的版本:

func files() {

    let fileManager = NSFileManager.defaultManager()

    let url = NSURL(string: "mywwwadres")
    assert(url != nil, "Invalid URL")

    let enumerator = url.flatMap { fileManager.enumeratorAtURL($0,
                        includingPropertiesForKeys: nil,
                        options: nil)
        { url, error in
            println("error with url \(url): \(error)")
            return true  // true to keep going
        }
    }
    assert(enumerator != nil, "Failed to create enumerator")

    let urls = enumerator.map { enumerator in
        map(enumerator) { url in
            url as! NSURL
        }
    }

    println(urls ?? [])
}

在url:“我收到错误消息:error with url nil:error Domain=NSCOCAERRORDOMIN Code=260”操作无法完成。(Cocoa错误260。)“UserInfo=0x7fd243e34a30{NSURL=,NSFilePath=,NSFilePath=/img,NSUnderlyingError=0x7fd243e34990”操作无法完成。没有这样的文件或目录“}[]正确,因此您的url不正确。尝试在web浏览器中访问。在de webbrowser II中,无法打开“ios.xxx.nl/img”并获得403禁止访问被拒绝,但我可以在“ios.xxx.nl/img/flower.jpg”打开一个图像,我想枚举文件夹以读取web文件夹中的图像的原因是有其他方法使用swift代码吗?可能不是-这不是真正的swift问题,基本上,web服务器没有授予您获取目录列表的权限。我很抱歉,在您的问题中,目录名为“mywwwaddress”,而在您的代码中,您使用的是“mywwwadres”(单个
d
s
)。你有没有仔细检查一下你的目录名拼写是否正确?谢谢你,弗兰克,这是另一个我不会在这个论坛上显示的地址