我想使用类似于命令行的本机命令使用Swift来触摸文件夹:
触摸myfile.txt
这样做的最佳方式是什么?
我可以创建文件夹OK。我的问题是如何触摸文件夹(即更新其修改日期)而不影响文件夹内容。
我正在探索是否有API来执行此操作。我希望您可以调用CLI命令来执行此操作。我的研究没有得到满意的答案。
答案 0 :(得分:3)
无需调用CLI命令,您可以使用NSFileManager
执行此操作。
首先,让我们看一下文件(或文件夹)的属性:
let manager = NSFileManager()
do {
let attr = try manager.attributesOfItemAtPath(yourFilePath)
print(attr)
} catch let error as NSError {
print(error)
}
使用.attributesOfItemAtPath
获得的是包含所有文件/文件夹属性的NSDictionary,包括修改日期。
您可以使用.setAttributes
设置这些属性,以下是将修改日期设置为当前日期的示例:
let newAttributes = [NSFileModificationDate: NSDate()]
do {
try manager.setAttributes(newAttributes, ofItemAtPath: yourFilePath)
} catch let error as NSError {
print(error)
}
答案 1 :(得分:0)
或者,您可以使用URL
类:
var resourceValues = URLResourceValues()
resourceValues.contentModificationDate = Date()
try? url.setResourceValues(resourceValues)
注意url
必须是var
,因为据推测它已被修改。