#include <stdio.h>
#include <io.h>
#include <time.h>
#include <conio.h>
void main( void )
{
struct _finddata_t c_file;
/* 위에서 struct _finddata_t 는 MS사에서 제공하는 구조체
자료형으로서 파일 정보 관리를 위한 자료형 입니다.
_finddata_t라는 자료형은 io.h에 아래와 같이 6개의 필드를
갖는 구조체 자료형으로 정의되어져 있습니다.
struct _finddata_t {
unsigned attrib; // 파일 속성 기억용 필드
time_t time_create;
// 파일을 만든 시간(지원하지 않음: 항상 -1값 가짐)
time_t time_access;
// 파일을 마지막으로 처리한 시간(지원하지 않음: 항상 -1값 가짐)
time_t time_write; // 마지막으로 파일을 기록한 시간
_fsize_t size; // 파일 사이즈 (바이트 수)
char name[260];
// 매치된 파일과 디렉토리 이름( 단, 패스네임은 없음)
};
파일 속성 기억용 필드에 담겨지는 값
1) _A_ARCH (아카이브) 값:0x20
2) _A_HIDDEN(히든파일) 히든 파일은 일반적인 dir명령으로는 보이지 않는다. 값:0x02)
단, dir /ah 옵션을 사용하면 보인다.
3) _A_NORMAL(일반정보파일) : 어떤 제한이 없는 읽기, 쓰기용 파일. 값:0x00)
4) _A_RDONLY(읽기용 파일) 값: 0x01
5) _A_SUBDIR(써브 디렉토리인지 아닌지 파악) 값: 0x10
6) _A_SYSTEM(시스템 파일) 일반적인 dir명령으로 볼수 없는 파일.값:0x04
단, dir /a 나 dir/a:s옵션으로 보는 것은 가능
*/
long hFile;
/* 위에서 hFile 변수는
findfirst함수를 호출하였을 때 리턴 되어지는 값을 담아둘 목적으로 만든 변수입니다.
findfirst를 하였을 때 매치되는 파일이 없으면 -1값이 돌아 오게 됩니다.
findfirst함수는 원하는 파일이 디스크에 존재하는지 파악하기 위한 함수로서
형식은 아래와 같습니다.
long _findfirst( char *filespec, struct _finddata_t *fileinfo );
소속: io.h
첫번째 매개변수에 전달된 파일이름과 동일한 파일이 발견되었을 때 발견된 첫번째
파일에 대한 정보를 두번째 구조체 매개변수에 보관하게 됩니다.
발견되는 파일이 없으면 -1값이 리턴된다.
첫번째 매개변수에는 와일드카드문자(*,?)를 사용할 수 있습니다.
int _findnext( long handle, struct _finddata_t *fileinfo );
소속: io.h
findfirst에 의해 발견된 파일의 다음 위치에 있는 파일을 찾아내게
됩니다. 파일이 없으면 -1값을 리턴합니다.
*/
/* Find first .c file in current directory */
if( ( hFile = _findfirst( "*.*", & c_file ) ) == -1L )
printf( "No files in current directory!\n" );
else
{
printf( "Listing of files\n\n" );
printf( "\nRDO HID SYS ARC dir FILE DATE %25c SIZE\n", ' ' );
printf( "--- --- --- --- --- ---- ---- %25c ----\n", ' ' );
/* Find the rest of the .c files */
do
{
printf( ( c_file.attrib & _A_RDONLY ) ? " Y " : " N " );
printf( ( c_file.attrib & _A_SYSTEM ) ? " Y " : " N " );
printf( ( c_file.attrib & _A_HIDDEN ) ? " Y " : " N " );
printf( ( c_file.attrib & _A_ARCH ) ? " Y " : " N " );
printf( ( c_file.attrib & _A_SUBDIR ) ? " Y " : " N " );
printf( " %-12s %.24s %9ld\n",
c_file.name, ctime( &( c_file.time_write ) ), c_file.size );
}while( _findnext( hFile, &c_file ) == 0 );
_findclose( hFile );
}
getch();
}
[출처] _finddata_t 구조체의 attrib 정의 값|작성자 한강로더
'[Study] > [ETC]' 카테고리의 다른 글
[asp] 다중 Select 를 이용한 지역 선택 ASP, DB, JAVASCRIPT (0) | 2011.01.26 |
---|---|
[editplus] html자동정렬 (0) | 2010.11.25 |
[java/eclipse] 이클립스 단축키 (0) | 2010.11.24 |
[java/Eclipse] 줄번호 보기 (0) | 2010.11.24 |
[javascript] Get으로 넘어오는 값 받기 (2) | 2010.11.24 |