如何在 OSX 上使用 Swift "touch" 文件

How to "touch" a file using Swift on OSX

我想使用类似于命令行的本机命令使用 Swift 触摸文件夹:

触摸myfile.txt

最好的方法是什么?

我可以创建文件夹 OK。我的问题是如何在不影响文件夹内容的情况下触摸文件夹(即更新其修改日期)。

我正在探索是否有 API 可以做到这一点。我希望您可以调用 CLI 命令来执行此操作。我的研究还没有找到满意的答案。

无需调用 CLI 命令,您可以使用 NSFileManager 执行此操作。

首先,让我们看一下文件(或文件夹)的属性

let manager = NSFileManager()

do {
    let attr = try manager.attributesOfItemAtPath(yourFilePath)
    print(attr)
} catch let error as NSError {
    print(error)
}

你用 .attributesOfItemAtPath 得到的是一个包含所有 file/folder 属性的 NSDictionary,包括修改日期。

您可以设置这些属性.setAttributes,这里是您将修改日期设置为当前日期的示例:

let newAttributes = [NSFileModificationDate: NSDate()]

do {
    try manager.setAttributes(newAttributes, ofItemAtPath: yourFilePath)
} catch let error as NSError {
    print(error)
}

或者您可以使用 URL class:

var resourceValues = URLResourceValues()
resourceValues.contentModificationDate = Date()
try? url.setResourceValues(resourceValues)

注意 url 必须是 var 因为它应该被这个修改。