Monday, December 25, 2006
C언어] 파일 타임 스탬프, 파일 날짜 시간 구하기 함수; File Time Stamp, Last Write Date
각 파일에는 "날짜/시간(Time of last modification of file)"이 있습니다. 타임 스탬프라고 하는데 그 날짜/시간을 구하는 방법입니다. 또한 타임 스탬프에는 다음과 같은 3종류가 있습니다:
* 만든 날짜 (Time of creation of file)
* 수정한 날짜 (Time of last modification of file)
* 액세스한 날짜 (Time of last access of file)
위의 3가지를 모두 구합니다.
파일명: 0.cpp
컴파일 및 실행 결과 화면:
위의 경우 "Beatles, The - All My Loving.mp3"라는 파일의 타임 스탬프를 출력했습니다.
파일 날짜가 아닌, 시스템 날짜 구하기: ▶▶ C언어] 현재 날짜 시간, 년월일 시분초 로 출력 함수; Time To String Function VC++
파일 속성: ▶▶ C언어-VC] 파일 속성(읽기전용/히든 속성 등) 출력; Print File Attributes: ARHS
DIR 명령 구현 소스: ▶▶ C언어 VC] 도스 DIR 명령 구현; 파일 목록(리스트) 출력; 와일드 카드(Wild Card) 지원
* 만든 날짜 (Time of creation of file)
* 수정한 날짜 (Time of last modification of file)
* 액세스한 날짜 (Time of last access of file)
위의 3가지를 모두 구합니다.
VC++: '파일 처음 만든' '마지막 기록한' '마지막으로 접근한' 날짜/시간 구하기 예제
파일명: 0.cpp
#include <stdio.h>
#include <sys/stat.h>
#include <time.h>
#include <errno.h>
char* timeToString(struct tm *t);
int main(void) {
struct _stat buf;
char* filename = "Beatles, The - All My Loving.mp3";
if ( _stat(filename, &buf) != 0 ) {
switch (errno) {
case ENOENT:
fprintf(stderr, "File %s not found.\n", filename); break;
case EINVAL:
fprintf(stderr, "Invalid parameter to _stat.\n"); break;
default:
fprintf(stderr, "Unexpected error in _stat.\n");
}
}
else {
printf("%s\n", filename);
printf( "\tTime Creation : %s\n", timeToString(localtime(&buf.st_ctime)) );
printf( "\tTime Last Written : %s\n", timeToString(localtime(&buf.st_mtime)) );
printf( "\tTime Last Access : %s\n", timeToString(localtime(&buf.st_atime)) );
}
}
char* timeToString(struct tm *t) {
static char s[20];
sprintf(s, "%04d-%02d-%02d %02d:%02d:%02d",
t->tm_year + 1900, t->tm_mon + 1, t->tm_mday,
t->tm_hour, t->tm_min, t->tm_sec
);
return s;
}
#include <sys/stat.h>
#include <time.h>
#include <errno.h>
char* timeToString(struct tm *t);
int main(void) {
struct _stat buf;
char* filename = "Beatles, The - All My Loving.mp3";
if ( _stat(filename, &buf) != 0 ) {
switch (errno) {
case ENOENT:
fprintf(stderr, "File %s not found.\n", filename); break;
case EINVAL:
fprintf(stderr, "Invalid parameter to _stat.\n"); break;
default:
fprintf(stderr, "Unexpected error in _stat.\n");
}
}
else {
printf("%s\n", filename);
printf( "\tTime Creation : %s\n", timeToString(localtime(&buf.st_ctime)) );
printf( "\tTime Last Written : %s\n", timeToString(localtime(&buf.st_mtime)) );
printf( "\tTime Last Access : %s\n", timeToString(localtime(&buf.st_atime)) );
}
}
char* timeToString(struct tm *t) {
static char s[20];
sprintf(s, "%04d-%02d-%02d %02d:%02d:%02d",
t->tm_year + 1900, t->tm_mon + 1, t->tm_mday,
t->tm_hour, t->tm_min, t->tm_sec
);
return s;
}
컴파일 및 실행 결과 화면:
D:\Z>cl /nologo 0.cpp && 0.exe
0.cpp
Beatles, The - All My Loving.mp3
Time Creation : 2006-11-15 15:02:55
Time Last Written : 2006-12-24 12:12:42
Time Last Access : 2006-12-25 12:01:23
D:\Z>
0.cpp
Beatles, The - All My Loving.mp3
Time Creation : 2006-11-15 15:02:55
Time Last Written : 2006-12-24 12:12:42
Time Last Access : 2006-12-25 12:01:23
D:\Z>
위의 경우 "Beatles, The - All My Loving.mp3"라는 파일의 타임 스탬프를 출력했습니다.
파일 날짜가 아닌, 시스템 날짜 구하기: ▶▶ C언어] 현재 날짜 시간, 년월일 시분초 로 출력 함수; Time To String Function VC++
파일 속성: ▶▶ C언어-VC] 파일 속성(읽기전용/히든 속성 등) 출력; Print File Attributes: ARHS
DIR 명령 구현 소스: ▶▶ C언어 VC] 도스 DIR 명령 구현; 파일 목록(리스트) 출력; 와일드 카드(Wild Card) 지원
tag: cpp
C언어 | C/C++ (Visual C++)
정말 감사합니다.
<< Home