2013-07-09 2 views
5

노드에서 표준 파일 stat 객체를 사용하여 파일의 수정 날짜를 가져올 수 있습니다. 내가 만든 날짜를 찾을 수있는 방법이 있습니까? http://nodejs.org/api/fs.html#fs_class_fs_stats 설명서에서 아무 것도 찾을 수 없습니다.노드에서 파일 생성 날짜 가져 오기

+0

'util.inspect (통계)'당신에게 정보를 제공해야한다 ... 당신은 출력으로 무엇을 얻을 수 있습니까 이의? – PSL

+0

날짜 값 - atime, ctime 및 mtime 중 어느 것도 생성 된 시간이 아닙니다 (ctime은 변경된 시간 임) – wheresrhys

답변

6

파일 생성 시간을 가져올 수 있는지 여부는 OS 및 파일 시스템에 따라 다릅니다. 전통적인 POSIX는 다른 사람들이 언급 한 것처럼 inode 수정 날짜가 아닌 ctime을 (오히려 혼란스럽게) 정의합니다. 그러나 일부 운영 체제에서는 st_birthtimespec 또는 st_birthtime을 가져올 수 있으며 이는 실제로 "작성"시간입니다. 호스트 운영 체제에서 sys/stat.h를 검사하여 사용할 수있는 것이 있다면 무엇이 있는지 확인해야합니다.

node.js에서 전체 stat 구조에 액세스 할 수 있는지 여부는 불행히도 물고기의 다른 주전자입니다. 하지만 적어도 OS가 지원하는지 여부를 파악할 수 있습니다.

1

Linux를 사용하는 경우이 정보는 액세스 할 수 없습니다 (Ext4 파일 시스템에 저장되어 있음에도 불구하고). 따라서 fs.statatime, 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 

창조 날짜입니다. 노드 API 문서 나 페도라를 사용하고하고 fs.stat 결과에는 'birthtime'필드가없는 link

0

연결합니다. 하지만 아마 당신은 노드의 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 
관련 문제