如何从 iOS 文件管理器中获取文件名数组
How do I get an array of file names from the iOS File Manager
我正在创建一个录音应用程序并声明了一个空数组来存储所有文件的名称。
var recordingTitles: [String] = []
当我启动该应用程序时,我有一个功能可以检查文件管理器中已经存储了哪些文件以及 returns 文件的数量,以便在 collectionView 中显示正确的单元格数量。
override func viewDidLoad() {
super.viewDidLoad()
getNumberOfRecordings()
}
// Get number of actual recording files stored in the File Manager Directory
func getNumberOfRecordings() {
let directoryUrl = getDirectory()
do {
contentsOfFileManager = try myFileManager.contentsOfDirectory(at: directoryUrl, includingPropertiesForKeys: [URLResourceKey(rawValue: recordingsKey)], options: .skipsHiddenFiles)
} catch let error {
print(error.localizedDescription)
}
numberOfRecordings = contentsOfFileManager.count
}
我想获取文件名并将它们分配给 "recordingTitles" 数组,以便为每个单元格显示正确的标题。我已尝试阅读 File Manager 的 Apple 文档,但尚未找到解决方案。预先感谢您的帮助!
因此,contentsOfFileManager
将由 NSURL 的 NSURL
objects. These objects have different fields you can pluck out and use. It looks like you're interested in just the filename so I'd like to draw your attention to the lastPathComponent
字段组成。来自文档:
This property contains the last path component, unescaped using the replacingPercentEscapes(using:) method. For example, in the URL file:///path/to/file, the last path component is file.
换句话说,调用 myNsurl.lastPathComponent
应该会为您提供文件名。因此,您可以遍历 myFileManager.contentsOfDirectory
返回的数组并获取每个数组的 lastPathComponent
并将它们添加到另一个仅包含文件名的数组中。
使用map
函数。你可能想要这样的东西:
recordingTitles = try myFileManager.contentsOfDirectory(at:directoryURL,
includingPropertiesForKeys: nil).map {[=10=].lastPathComponent}
我正在创建一个录音应用程序并声明了一个空数组来存储所有文件的名称。
var recordingTitles: [String] = []
当我启动该应用程序时,我有一个功能可以检查文件管理器中已经存储了哪些文件以及 returns 文件的数量,以便在 collectionView 中显示正确的单元格数量。
override func viewDidLoad() {
super.viewDidLoad()
getNumberOfRecordings()
}
// Get number of actual recording files stored in the File Manager Directory
func getNumberOfRecordings() {
let directoryUrl = getDirectory()
do {
contentsOfFileManager = try myFileManager.contentsOfDirectory(at: directoryUrl, includingPropertiesForKeys: [URLResourceKey(rawValue: recordingsKey)], options: .skipsHiddenFiles)
} catch let error {
print(error.localizedDescription)
}
numberOfRecordings = contentsOfFileManager.count
}
我想获取文件名并将它们分配给 "recordingTitles" 数组,以便为每个单元格显示正确的标题。我已尝试阅读 File Manager 的 Apple 文档,但尚未找到解决方案。预先感谢您的帮助!
因此,contentsOfFileManager
将由 NSURL 的 NSURL
objects. These objects have different fields you can pluck out and use. It looks like you're interested in just the filename so I'd like to draw your attention to the lastPathComponent
字段组成。来自文档:
This property contains the last path component, unescaped using the replacingPercentEscapes(using:) method. For example, in the URL file:///path/to/file, the last path component is file.
换句话说,调用 myNsurl.lastPathComponent
应该会为您提供文件名。因此,您可以遍历 myFileManager.contentsOfDirectory
返回的数组并获取每个数组的 lastPathComponent
并将它们添加到另一个仅包含文件名的数组中。
使用map
函数。你可能想要这样的东西:
recordingTitles = try myFileManager.contentsOfDirectory(at:directoryURL,
includingPropertiesForKeys: nil).map {[=10=].lastPathComponent}