Swift 枚举捆绑包中的sks文件
我想在包中列出.sk。他们是我比赛的水平。我只想通过丢弃其余的.sk来知道包中有多少层 我试过这个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
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)
}