ruby スクリプトを使用して、Mac OS 上のファイルのファイルシステム作成時間を設定しようとしています。
Mac OS X では、「ctime」はファイルの作成時刻ではなく、inode の最終変更時刻を表すため、ruby の File.utime() を使用して ctime を設定しても役に立ちません。
このヒント [ http://inessential.com/2008/12/18/file_creation_date_in_ruby_on_macs ] を使用して、ファイルの作成時刻を取得できます。
Time.parse(`mdls -name kMDItemContentCreationDate -raw "#{filename}"`)
...しかし、ルビーを使用して設定する方法について何か考えはありますか?
- アップデート -
わかりました、実際に Ruby でこれを行うことができると思います。File.utime
ctime は Mac OS でファイル作成時間を追跡するために技術的には使用されていませんが、ctimeutime
を更新するために使用すると (同時に設定する必要があるmtimeと共に)、ファイルシステムは に従って魔法のように作成時刻も更新するように見えます。kMDItemContentCreationDate
ファイル名を 2010 年 10 月 1 日の ctime と 2010 年 10 月 2 日の mtime に設定するには:
File.utime(Time.strptime('011010', '%d%m%y'), Time.strptime('021010', '%d%m%y'), filename)