Swift从URL获取所有项目

时间:2018-11-30 14:12:30

标签: ios swift

我正在制作带有mp3 ftp Steam的小型音乐播放器。

这是我将我的URL添加到列表中的方式:

self.playList.add("http://my-ftp.pl/mp3/1.mp3")
self.playList.add("http://my-ftp.pl/mp3/2.mp3")
self.playList.add("http://my-ftp.pl/mp3/3.mp3")
...
self.play(url: URL(string:(playList[self.index] as! String))!) 

我正在寻找有关如何在不输入完整路径的情况下获取所有(* .mp3)URL(http://my-ftp.pl/mp3)文件夹元素的想法。

2 个答案:

答案 0 :(得分:0)

无法获取远程文件夹的内容,但是您可以

var counter = 1

func getMp3(_ url:URL) {

API.load(url) { (response,data,error) in

   if let data = data { 
      // use data
      coounter += 1
     getMp3(urlWithNewCounter)
   }

}

答案 1 :(得分:0)

对不起,但是我做到了。

 func getMp3() {

        let url = URL(string: "http://not-my-ftp-just-simple.com/mp3")!

        let task = URLSession.shared.downloadTask(with: url) { localURL, urlResponse, error in
            if let localURL = localURL {
                if let string = try? String(contentsOf: localURL) {

                    let regex = try! NSRegularExpression(pattern:"href=(.*?)>", options: [])
                    var results = [String]()

                    regex.enumerateMatches(in: string, options: [], range: NSMakeRange(0, string.utf16.count)) { result, flags, stop in
                        if let r = result?.range(at: 1), let range = Range(r, in: string) {

                            if (String(String(string[range]).toLengthOf(length: 1).dropLast())).contains(".mp3"){
                            results.append(String(String(string[range]).toLengthOf(length: 1).dropLast()))
                            }

                        }
                    }

                    print(results)
                }
            }
        }
        task.resume()
    }