获取文档目录iOS Swift中每个项目的属性

时间:2019-03-20 10:17:37

标签: ios swift nsdocumentdirectory nsattributedescription

我一直在尝试获取文档目录中所有项目的属性,例如文件类型,创建日期,文件大小。

这是我一直在使用的代码,但是它给出的只是“ NSFileTypeDirectory

 let filemgr = FileManager.default


     do
     {
        let attribs: NSDictionary? = try filemgr.attributesOfItem(
            atPath: documentDirectoryPath!) as NSDictionary
        if let fileattribs = attribs
     {
            let type = fileattribs["NSFileType"] as! String
            print("File type \(type)")
     }
     }
     catch
     {
            print(error)
     }

我认为它返回了Document文件夹的属性。

2 个答案:

答案 0 :(得分:0)

尝试

let fileManager = FileManager.default
let documentdirectory = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first
let filePath = documentdirectory?.appendingPathComponent("your file name").path

do {
  let fileAttribute = try fileManager.attributesOfItem(atPath: filePath!)
  let fileSize = fileAttribute[FileAttributeKey.size] as! Int64
  let fileType = fileAttribute[FileAttributeKey.type] as! String
  let filecreationDate = fileAttribute[FileAttributeKey.creationDate] as! Date

} catch let error {
  print(error.localizedDescription)

答案 1 :(得分:0)

基于@KarthikeyanBose的代码:要获取 Documents 目录中文件的 all 信息,请执行以下操作:

let fileManager = FileManager.default

if let documentsURLs = fileManager.urls(for: .documentDirectory, in: .userDomainMask).first {
    do {
        let fileNames = try fileManager.contentsOfDirectory(atPath: documentsURLs.path)

        for fileName in fileNames {
            let fileURL = documentsURLs.appendingPathComponent(fileName)

            let fileAttribute = try fileManager.attributesOfItem(atPath: fileURL.path)
            let fileSize = fileAttribute[FileAttributeKey.size] as! Int64
            let fileType = fileAttribute[FileAttributeKey.type] as! String
            let filecreationDate = fileAttribute[FileAttributeKey.creationDate] as! Date
            let fileExtension = fileURL.pathExtension;

            print("Name: \(fileName), Size: \(fileSize), Type: \(fileType), Date: \(filecreationDate), Extension: \(fileExtension)")
        }
    } catch {
        print("Error: \(error)")
    }
} //Handle this "else" error too, even though this really shouldn't happen

此代码显示例如:

Name: Deadpool.png, Size: 39225, Type: NSFileTypeRegular, Date: 2019-05-27 11:03:03 +0000, Extension: png