Swift 枚举捆绑包中的sks文件

Swift 枚举捆绑包中的sks文件,swift,Swift,我想在包中列出.sk。他们是我比赛的水平。我只想通过丢弃其余的.sk来知道包中有多少层 我试过这个 let listSKS = Bundle.main.path(forResource:".//Stage1", ofType: "sks") print(listSKS) Return->(“/private/var/containers/Bundle/Application/2B72AD87-E6FE-45FF-9DCC-AB0F27F2F353/Mad

我想在包中列出.sk。他们是我比赛的水平。我只想通过丢弃其余的.sk来知道包中有多少层 我试过这个

let listSKS = Bundle.main.path(forResource:".//Stage1", ofType: "sks")
print(listSKS)
Return->(“/private/var/containers/Bundle/Application/2B72AD87-E6FE-45FF-9DCC-AB0F27F2F353/Madness Jumping.app//Stage1.sks”)

Return->Optional(名称:'Stage1'帧:{-896,-414},{1792828}锚定:{0.5,0.5})

返回->零

let listLevels2 = GameScene(fileNamed: ".//Stage*")
print(listLevels2)
Return->nil

您应该使用
URL(用于扩展名为的资源)

let listLevels2 = GameScene(fileNamed: ".//Stage*")
print(listLevels2)
let listSKS = Bundle.main.urls(forResourcesWithExtension: ".sks", subdirectory: nil)
要仅获取文件名,请执行以下操作:

if let listSKS = Bundle.main.urls(forResourcesWithExtension: ".sks", subdirectory: nil) {
    let files = listSKS.map(\.lastPathComponent).filter({$0.prefix(5) == "Stage"})
    print(files)
}

您可以使用“阶段”筛选sks文件,如下所示:

let filePrefix = "Stage"
if let fileURLs = Bundle.main.urls(forResourcesWithExtension: "sks", subdirectory: nil) {
     let filteredArray = fileURLs.filter{ $0.lastPathComponent.range(of: "^\(filePrefix)", options: [.regularExpression, .caseInsensitive, .diacriticInsensitive]) != nil }
     print("Filtered Array",  filteredArray)
}

谢谢此列表列出了捆绑包中的所有SKS文件。@NicanorBurcio更新了我的答案,只包含名称以“Stage”开头的SKS文件。如果有效,您是否可以将其作为答案接受。谢谢系统不会让我做标记作为答案,因为我是这里的新手。很抱歉
let filePrefix = "Stage"
if let fileURLs = Bundle.main.urls(forResourcesWithExtension: "sks", subdirectory: nil) {
     let filteredArray = fileURLs.filter{ $0.lastPathComponent.range(of: "^\(filePrefix)", options: [.regularExpression, .caseInsensitive, .diacriticInsensitive]) != nil }
     print("Filtered Array",  filteredArray)
}