我一直在尝试获取文档目录中所有项目的属性,例如文件类型,创建日期,文件大小。
这是我一直在使用的代码,但是它给出的只是“ 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文件夹的属性。
答案 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