2013-07-09 21 views
5

ノードでは、標準ファイルのstatオブジェクトを使用してファイルの変更日を取得できます。私はまた、作成された日付を見つけることができる方法はありますか?私はhttp://nodejs.org/api/fs.html#fs_class_fs_statsの資料で何も見つけることができません。ノード内のファイル作成日を取得

+0

'util.inspect(統計)'あなたに情報を与える必要があります...あなたが出力として何を得るのですかこれの? – PSL

+0

3つの日付の値 - atime、ctime、mtime、どれも作成された時間ではありません(ctimeは変更された時間です) – wheresrhys

答えて

6

ファイルの作成時間を取得できるかどうかは、OSとファイルシステムによって異なります。伝統的なPOSIXは、他の人が言及したように、作成日ではなく、iノードの変更日であるctimeを定義しています(むしろ混乱します)。ただし、一部のオペレーティングシステムでは、st_birthtimespecまたはst_birthtimeを得ることができます。これは真の「作成」時間です。利用可能なものがあれば、ホストオペレーティングシステム上のsys/stat.hをチェックする必要があります。

node.jsからstat構造全体にアクセスできるかどうかは、残念ながら、魚の異なるケトルです。しかし、少なくともあなたのOSがそれをサポートしているのかどうかは分かります。

1

Linuxを使用している場合、この情報にはアクセスできません(Ext4ファイルシステムに保存されていますが)。従ってfs.statatime,ctime,mtimeの値しか返しません。

+1

ctimeは、私が読んだこと以外は同様ですが、修正時間 – wheresrhys

+1

残念ながら、あなたは正しい(私は 'ctime'が' creation time'のためだと思った)。私はいくつかのものを試してみましょう、私は答えを見つけることができない場合、私はこれを削除するつもりです。 – Zbigniew

+1

これを見てください:[ファイルの作成時間を得る](http://unix.stackexchange.com/questions/24441/get-file-created-creation-time) – Zbigniew

9

誰かがすべてのこの時間後、この上でつまずく場合は、ノードv0.12.0のように、この使用:コールバックは&統計を2つの引数誤るいる

fs.stat(path, callback) 

を。統計オブジェクトはプロパティを持ちます

birthtime 

作成日です。私はFedoraのを使用していますし、NO 'birthtime' フィールドはfs.stat結果ではありませんlink

0

APIドキュメントをノードに

リンク。しかし、おそらく、ノードのchild_processを使ってls --full-timeを呼び出すことができます。少なくとも私のマシンでは私に正しい結果が与えられています。

fs.stat結果:

{ dev: 64771, 
    mode: 33279, 
    nlink: 1, 
    uid: 1000, 
    gid: 1000, 
    rdev: 0, 
    blksize: 4096, 
    ino: 2098445, 
    size: 48523700, 
    blocks: 94776, 
    atime: Sat Jul 04 2015 19:01:29 GMT+1000 (AEST), 
    mtime: Thu Aug 22 2013 16:45:10 GMT+1000 (AEST), 
    ctime: Sat Jul 04 2015 19:01:29 GMT+1000 (AEST) } 

LS --full-時間

-rwxrwxrwx. 1 pahuang pahuang 22M 2013-06-23 17:51:08.000000000 +1000 test_media/processed/20130621.mkv 
関連する問題