将文件名存储在数组中 Swift
Storing file names in an array Swift
我正在寻找允许我扫描项目中的文件夹并将所有扩展名为 .jpg 的文件名存储在数组中的代码。
这是我必须扫描我的 xcode 项目的主文件夹的代码,但是我如何存储在数组中找到的文件名?
let filemanager:NSFileManager = NSFileManager()
let files = filemanager.enumeratorAtPath(NSHomeDirectory())
while let file = files?.nextObject() {
// store all file names with extension (jpg) in array
}
这是它如何工作的一个例子。此函数 returns 目录 及其所有子目录 中给定路径中所有文件 URL 的数组。
func files(atPath: String) -> [NSURL] {
var urls : [NSURL] = []
let dirUrl = NSURL(fileURLWithPath: atPath)
if dirUrl != nil {
let fileManager = NSFileManager.defaultManager()
let enumerator:NSDirectoryEnumerator? = fileManager.enumeratorAtURL(dirUrl!, includingPropertiesForKeys: nil, options: nil, errorHandler: nil)
while let url = enumerator?.nextObject() as! NSURL? {
if url.lastPathComponent == ".DS_Store" {
continue
}
urls.append(url)
}
}
return urls
}
let allFiles = files("/a/directory/somewhere")
let documentsDirectoryURL = NSFileManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first as! NSURL
let jpgFilesArray = (NSFileManager.defaultManager().contentsOfDirectoryAtURL(documentsDirectoryURL, includingPropertiesForKeys: nil, options: .SkipsHiddenFiles | .SkipsSubdirectoryDescendants | .SkipsPackageDescendants, error: nil) as! [NSURL]).sorted{[=10=].lastPathComponent<.lastPathComponent}.filter{[=10=].pathExtension!.lowercaseString == "jpg"}
作为只读计算 属性
var jpgFilesArray: [NSURL] {
return (NSFileManager.defaultManager().contentsOfDirectoryAtURL(documentsDirectoryURL, includingPropertiesForKeys: nil, options: .SkipsHiddenFiles | .SkipsSubdirectoryDescendants | .SkipsPackageDescendants, error: nil) as! [NSURL]).sorted{[=11=].lastPathComponent<.lastPathComponent}.filter{[=11=].pathExtension!.lowercaseString == "jpg"}
}
我正在寻找允许我扫描项目中的文件夹并将所有扩展名为 .jpg 的文件名存储在数组中的代码。 这是我必须扫描我的 xcode 项目的主文件夹的代码,但是我如何存储在数组中找到的文件名?
let filemanager:NSFileManager = NSFileManager()
let files = filemanager.enumeratorAtPath(NSHomeDirectory())
while let file = files?.nextObject() {
// store all file names with extension (jpg) in array
}
这是它如何工作的一个例子。此函数 returns 目录 及其所有子目录 中给定路径中所有文件 URL 的数组。
func files(atPath: String) -> [NSURL] {
var urls : [NSURL] = []
let dirUrl = NSURL(fileURLWithPath: atPath)
if dirUrl != nil {
let fileManager = NSFileManager.defaultManager()
let enumerator:NSDirectoryEnumerator? = fileManager.enumeratorAtURL(dirUrl!, includingPropertiesForKeys: nil, options: nil, errorHandler: nil)
while let url = enumerator?.nextObject() as! NSURL? {
if url.lastPathComponent == ".DS_Store" {
continue
}
urls.append(url)
}
}
return urls
}
let allFiles = files("/a/directory/somewhere")
let documentsDirectoryURL = NSFileManager().URLsForDirectory(.DocumentDirectory, inDomains: .UserDomainMask).first as! NSURL
let jpgFilesArray = (NSFileManager.defaultManager().contentsOfDirectoryAtURL(documentsDirectoryURL, includingPropertiesForKeys: nil, options: .SkipsHiddenFiles | .SkipsSubdirectoryDescendants | .SkipsPackageDescendants, error: nil) as! [NSURL]).sorted{[=10=].lastPathComponent<.lastPathComponent}.filter{[=10=].pathExtension!.lowercaseString == "jpg"}
作为只读计算 属性
var jpgFilesArray: [NSURL] {
return (NSFileManager.defaultManager().contentsOfDirectoryAtURL(documentsDirectoryURL, includingPropertiesForKeys: nil, options: .SkipsHiddenFiles | .SkipsSubdirectoryDescendants | .SkipsPackageDescendants, error: nil) as! [NSURL]).sorted{[=11=].lastPathComponent<.lastPathComponent}.filter{[=11=].pathExtension!.lowercaseString == "jpg"}
}