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

 
Friday, February 02, 2007

C언어 VC] 파일 속성; 읽기 전용 여부 판단 함수; is File Readonly?


파일을 읽고 쓰는 작업을 할 때, 해당 파일이 읽기 전용인지 아닌지 우선 알아내야 할 때가 있습니다. 필요할 때마다 속성 판단 코드를 삽입해 주는 것보다는 다음의 isFileReadonly() 함수와 같은 것을 미리 만들어 두고 쓰는 것이 편리합니다.

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

Readonly(읽기 전용) 속성 검사 예제


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

int isFileReadonly(char* filename);


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


  if (isFileReadonly(filename) == 1)
    puts("읽기 전용 파일입니다.");
  else if (isFileReadonly(filename) == 0)
    puts("읽기 전용이 아닙니다.");
  else if (isFileReadonly(filename) == -1)
    puts("에러가 났습니다.");

  return 0;
}




int isFileReadonly(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_RDONLY) result = 1;


  _findclose(hFile);

  return result;
}


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

D:\Z>cl /nologo example.cpp && example.exe
example.cpp
읽기 전용 파일입니다.

D:\Z>



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

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