2013-07-09 2 views
5

В узле я могу получить модифицированную дату файла, используя стандартный объект stat stat. Есть ли способ найти свою созданную дату? Я вообще ничего не могу найти в документации http://nodejs.org/api/fs.html#fs_class_fs_stats.Получить дату создания файла в узле

+0

'util.inspect (статистика)' должен дать вам информацию ... Что вы получите в качестве выходного этого? – PSL

+0

3 значения даты - atime, ctime и mtime, ни одно из которых не является созданным временем (ctime - это время изменения) – wheresrhys

ответ

6

Независимо от того, сможете ли вы получить время создания файла, зависит от ОС и файловой системы. Традиционная POSIX определяет ctime, которая (скорее, смущающе), дата модификации inode, а не дата создания, как упомянули другие люди. Однако в некоторых операционных системах вы можете получить st_birthtimespec или st_birthtime, что является истинным временем «создания». Вам нужно будет проверить sys/stat.h на вашей операционной системе хоста, чтобы узнать, что, если угодно, доступно.

К сожалению, независимо от того, имеете ли вы доступ ко всей структуре stat от node.js, это другой чайник рыбы. Но, по крайней мере, вы можете понять, поддерживает ли ваша ОС и оттуда.

1

Если вы используете Linux, эта информация недоступна (хотя она хранится в файловой системе Ext4). Таким образом, fs.stat возвращает atime, ctime, mtime значения.

+1

ctime, в соответствии со всем, что я читал, изменено временем, которое похоже, хотя и не совсем идентично Модифицированное время – wheresrhys

+1

К сожалению, вы правы (я думал, что 'ctime' был для' создания '). Я попробую кое-что, но я собираюсь удалить это, если не найду ответ. – Zbigniew

+1

Взгляните на это: [получите время создания файла] (http://unix.stackexchange.com/questions/24441/get-file-created-creation-time) – Zbigniew

9

Если кто-то спотыкается это после того, как все это время, как использование v0.12.0 узла этим:

fs.stat(path, callback) 

Где обратный вызов имеет два аргумента заблуждаться & статистики. Объект статистики имеет имущество

birthtime 

, который является датой создания.

Ссылка на узел апи документацию link

0

Я использую Fedora и нет «birthtime» поля в fs.stat результата. Но, возможно, вы можете попробовать использовать 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 
Смежные вопросы