컴퓨터 엑셀 워드 포토샵 구글어스 WINDOWS JAVASCRIPT JAVA C++

 
Saturday, December 03, 2005

C언어 VC] 숨김 속성, 히든 파일 여부 판단 함수; is File Hidden?


좀 드문 경우지만, 어떤 파일이 숨김 속성 즉 "히든 파일"인지 아닌지 알아내야 할 때가 있습니다.

이때는 int isFileHidden(char* filename); 과 같은 함수를 미리 만들어 두고 쓰면 편리합니다.

isFileHidden("파일명") 함수는, 파라미터로 입력한 파일이, 숨김 속성 파일일 때는 참(1)을, 아닐 때에는 거짓(0)을 반환합니다. 그리고 에러가 났을 때는 -1 을 반환합니다.

Hidden Attribute (숨김 속성) 체크 예제


소스 파일명: example.cpp
#include <stdio.h>
#include <io.h>

int isFileHidden(char* filename);


int main(void) {
  char* filename = "test.txt";


  if (isFileHidden(filename) == 1)
    puts("숨김 파일입니다.");
  else if (isFileHidden(filename) == 0)
    puts("숨김 파일이 아닙니다.");
  else if (isFileHidden(filename) == -1)
    puts("에러가 났습니다.");

  return 0;
}




int isFileHidden(char* filename) {
  _finddatai64_t c_file;
  intptr_t hFile;
  int result = 0;

  if ( (hFile = _findfirsti64(filename, &c_file)) == -1L )
    result = -1;
  else
    if (c_file.attrib & _A_HIDDEN) result = 1;


  _findclose(hFile);

  return result;
}



컴파일 및 실행 결과 화면:
(현재 디렉토리에 있는 test.txt 라는 파일의 속성을 검사합니다. 1번째 실행 때는 test.txt 를 보통 속성으로, 2번째 실행 때는 test.txt 를 히든 속성으로 만든 후 실행했습니다. 그리고 3번째는 test.txt 라는 파일을 지운 후 실행했기에 에러가 났습니다.)
D:\Z>cl /nologo example.cpp && example.exe
example.cpp
숨김 파일이 아닙니다.

D:\Z>cl /nologo example.cpp && example.exe
example.cpp
숨김 파일입니다.

D:\Z>cl /nologo example.cpp && example.exe
example.cpp
에러가 났습니다.

D:\Z>



파일이 가진 속성들을 ARHS 형식의 간단한 문자열로 표현: ▶▶ C언어-VC] 파일 속성(읽기전용/히든 속성 등) 출력; Print File Attributes: ARHS

☞ C/C++ (VC++)

0 Comments:

Post a Comment

<< Home RSS 2.0 feed

구글 Google 에서 제공하는 무료 블로그 서비스인 블로거 Blogger 의 인터넷 주소는 www.blogger.com 입니다. Blogger 에 블로그를 만들면, blogspot.com 이라는 주소에 블로그가 생성됩니다.
블로그를 직접 방문하지 않고도 최신 게시물을 구독하려면 RSS 2.0 feed 주소를 리더기에 등록하시면 됩니다.
Previous Posts
Monthly Archives
Top