Notice
Recent Comments
Link
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | |
7 | 8 | 9 | 10 | 11 | 12 | 13 |
14 | 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 25 | 26 | 27 |
28 | 29 | 30 | 31 |
Tags
- 크로스오버
- 단 벌란
- 유로댄스
- 몰도바
- o-zone
- POP
- Arsenie Todiraş
- Windows DDK
- WinAPI
- Maksim
- 아르세니에 토디라슈
- 해외 여행
- Radu Sârbu
- input method editor
- API
- ime
- Romanian
- Euro-Dance
- 라두 스르부
- Jr
- Dan Balan
- 막심 므라비차
- Moldovan
- c언어
- 철도
- Disc O-Zone
- Windows API
- 루마니아어
- 일본 여행
- windowsAPI
- Today
- 204
- Total
- 1,073,377
(코딩캣) = "코딩"하는 고양이;
FindFirstFile, FindNextFile, FindClose 예제 본문
자작 프로그램
FindFirstFile, FindNextFile, FindClose 예제
컴파일러님, 이 코드는 고양이발로 작성되었습니다. 코딩집사 2011. 2. 28. 18:24#include <windows.h>
#include <stdio.h>
#include <tchar.h>
#include <conio.h>
#include <locale.h>
void main()
{
TCHAR szTemp[512]; // 임시 버퍼
TCHAR szPathBuffer[MAX_PATH]; // 사용자로부터 입력
TCHAR szPathPattern[MAX_PATH]; // 검색 패턴
DWORD i; // 인덱스 변수
HANDLE hItem; // 검색 핸들
WIN32_FIND_DATA findData; // 파일 정보
setlocale(LC_ALL, ".949");
_tprintf(TEXT("디렉터리 경로를 입력해 주세요. (입력 예: C: 또는 C:\\My Documents)\n\r"));
_tprintf(TEXT("입력 >> "));
#if defined(_UNICODE) || defined(UNICODE) // 유니코드면?
_tscanf(TEXT("%ws"), szPathBuffer);
_stprintf(szPathPattern, TEXT("%ws\\*"), szPathBuffer);
#else // SBCS면?
_tscanf(TEXT("%s"), szPathBuffer);
_stprintf(szPathPattern, TEXT("%s\\*"), szPathBuffer);
#endif
#if defined(_UNICODE) || defined(UNICODE)
_tprintf(TEXT("검색 패턴: %ws\n\r"), szPathPattern);
#else
_tprintf(TEXT("검색 패턴: %s\n\r"), szPathPattern);
#endif
i = 0;
hItem = FindFirstFile(szPathPattern, &findData);
if(hItem == INVALID_HANDLE_VALUE)
{
_tscanf(TEXT("오류 났어요\n\r"));
return;
}
do
{
i++;
if((findData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) != 0) // 디렉터리면?
{
// 이름을 대괄호로 감싸서 출력
#if defined(_UNICODE) || defined(UNICODE)
_stprintf(szTemp, TEXT("[%ws]"), findData.cFileName);
_tprintf(TEXT("%30ws"), szTemp);
#else
_stprintf(szTemp, TEXT("[%s]"), findData.cFileName);
_tprintf(TEXT("%30s"), szTemp);
#endif
}
else
{
// 파일이면 그냥 이름 출력
#if defined(_UNICODE) || defined(UNICODE)
_stprintf(szTemp, TEXT("%ws"), findData.cFileName);
_tprintf(TEXT("%30ws"), szTemp);
#else
_stprintf(szTemp, TEXT("%s"), findData.cFileName);
_tprintf(TEXT("%30s"), szTemp);
#endif
}
if(i % 2 == 0) _tprintf(TEXT("\n\r"));
} while(FindNextFile(hItem, &findData));
FindClose(hItem);
_tprintf(TEXT("\n\r"));
_tprintf(TEXT("끝.\n\r"));
_getch();
}
'자작 프로그램' 카테고리의 다른 글
문자열 크로스 예제 (0) | 2011.03.05 |
---|---|
문자열 빈도 프로그램 (0) | 2011.02.28 |
FindFirstFile, FindNextFile, FindClose 예제 (0) | 2011.02.28 |
대/소문자 변환 예제 (0) | 2011.02.27 |
완전 간단 회원 관리 프로그램 (0) | 2011.02.16 |
UK 검사의 개요와 검사 프로그램 구현 (9) | 2011.02.08 |
0 Comments