我在文档文件夹中获取文件名的代码有什么问题?

func listFilesFromDocumentsFolder() -> [NSString]?{
    var theError = NSErrorPointer()
    let dirs = NSSearchPathForDirectoriesInDomains(NSSearchPathDirectory.DocumentDirectory, NSSearchPathDomainMask.AllDomainsMask, true) as? [String]
    if dirs != nil {
        let dir = dirs![0] as NSString
        let fileList = NSFileManager.defaultManager().contentsOfDirectoryAtPath(dir, error: theError) as [NSString]
        return fileList
    }else{
        return nil
    }
}

我认为我读的文件是正确的,我非常确定文件文件夹中有什么,但是"文件列表"没有显示任何内容?"dir"显示文件夹的路径.

推荐答案

此解决方案适用于Swift 4(Xcode 9.2)和Swift 5(Xcode 10.2.1+):

let fileManager = FileManager.default
let documentsURL = fileManager.urls(for: .documentDirectory, in: .userDomainMask)[0]
do {
    let fileURLs = try fileManager.contentsOfDirectory(at: documentsURL, includingPropertiesForKeys: nil)
    // process files
} catch {
    print("Error while enumerating files \(documentsURL.path): \(error.localizedDescription)")
}

下面是一个可重用的filemanager扩展,它还允许您在结果中跳过或包括隐藏文件:

import Foundation

extension FileManager {
    func urls(for directory: FileManager.SearchPathDirectory, skipsHiddenFiles: Bool = true ) -> [URL]? {
        let documentsURL = urls(for: directory, in: .userDomainMask)[0]
        let fileURLs = try? contentsOfDirectory(at: documentsURL, includingPropertiesForKeys: nil, options: skipsHiddenFiles ? .skipsHiddenFiles : [] )
        return fileURLs
    }
}

// Usage
print(FileManager.default.urls(for: .documentDirectory) ?? "none")

Ios相关问答推荐

在SwiftUI中使用系统图像和色调创建圆形按钮

SwiftUI@Observable不跟踪父类属性中的更改以更新视图

删除领域中的cartItem时出现问题

如何在SwiftUI中以一定Angular 绘制直线(&A)

如何在SwiftUI中将图像整合到文本标签中间?

UIView 阴影不适用于自定义扩展

工具栏底部 iOS 16 - SwiftUI

PropertyWrapper 不存在的 Codable 属性的默认值

SwiftUI Select 器值在超过最大值时重置

UIViewRepresentable - MKMapView 没有得到更新

如何识别 SwiftUI 中点击的按钮 ID 以使该按钮动画化?

在向我的 struct 添加属性后获取线程 10:EXC_BAD_ACCESS (code=EXC_I386_GPFLT)

如何在 Swift 中从另一个视图控制器将元素附加到数组中

将flutter android项目导入iOS

界面生成器中 UIView 的边框 colored颜色 不起作用?

为信用卡输入格式化 UITextField,例如 (xxxx xxxx xxxx xxxx)

aps-environment 始终在发展

比较没有时间分量的 NSDates

iPhone:什么是 WWDR 中级证书?

请在您的 Podfile 中为此目标指定一个平台?