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

标签 swift macos file cocoa command

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

触摸我的文件.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 得到的是一个包含所有文件/文件夹属性(包括修改日期)的 NSDictionary。

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

let newAttributes = [NSFileModificationDate: NSDate()]

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

关于swift - 如何在 OSX 上使用 Swift "touch"文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34826938/

相关文章:

swift - 如何在 SwiftUI 中获取 View 的位置

ios - 如何检测 iOS ScrollView 何时位于最顶部?

cocoa - 关闭窗口后退出 cocoa 应用程序

objective-c - 有什么方法可以监控 Mac 上的新应用程序安装事件吗?

regex - 如何替换文件名中的子字符串?

svn - 乌龟SVN : how to svn update folder but NOT its subfolders?

ios - 在屏幕上固定标签

ios - UITextField iOS : how to deal with the dismiss keyboard button?

file - 在Delphi中的二进制文件中间插入记录

android - 了解何时在 Android 中使用 cordova.file.externalRootDirectory