WinCE 파일 작업 (참조)

WinCE 파일 작업 (참조)
http://www.cnblogs.com/mugua/archive/2009/03/17/1413930.html 자주 사용 하 는 세 가지 방법 을 요약 하면 다음 과 같다.
방법 은 MFC 의 CFile 류 를 사용 합 니 다.     열기 용 Open, 닫 기 용 Close (), 파일 포인터 이동 용 Seek, 파일 읽 기 용 Read (), 파일 쓰기 용 Write, 파일 속성 가 져 오기 GetFileStatus 방법 을 사용 할 수 있 습 니 다. 이것 은 MSDN 을 볼 수 있 습 니 다. 다음은 몇 줄 의 간단 한 코드 를 드 립 니 다.
CFile file;
bool isOpenOK = file.Open(L"\\flash disk\\flyfox\\test.txt", CFile::typeBinary|CFile::modeRead);//        
if (isOpenOK)
{
    char buffer[1024];
    file.Seek (10L, CFile::begin);
    DWORD readCount = file.Read(fileBuffer, 1024); //           
}
file.Close ();
 

방법 2 C 기반 FILE 구조 체 1, 파일 열기 사용wfopen, 원형 은 다음 과 같 습 니 다: FILE *wfopen( const wchar_t *filename, const wchar_t *mode ); 두 번 째 매개 변 수 는 열기 모드 입 니 다. 여기 에는 r, w, r + 등 이 많 습 니 다. 의 미 는 다음 과 같 습 니 다. 1. "r" 는 읽 기 전용 으로 파일 을 엽 니 다. 파일 이 존재 하지 않 으 면 열 리 지 않 습 니 다. 2. "w" 는 쓰기 전용 으로 파일 을 엽 니 다. 만약 에 파일 이 존재 하지 않 으 면 3. "a" 는 추가 적 인 방식 으로 파일 을 엽 니 다. 파일 이 존재 하지 않 으 면...새 파일 을 자동 으로 만 듭 니 다. 이미 존재 하 는 파일 EOF 플래그 는 움 직 이지 않 습 니 다.4. 'r +' 는 읽 기 / 쓰기 방식 으로 파일 을 엽 니 다. 파일 이 존재 하지 않 으 면 열 리 지 않 습 니 다. 5. 'w +' 는 읽 기 / 쓰기 방식 으로 파일 을 엽 니 다. 파일 이 없 으 면 새 파일 을 만 듭 니 다. 파일 이 존재 하지 않 으 면 6, a + 가 파괴 되 고 추가 방식 으로 파일 을 엽 니 다. 파일 이 존재 하지 않 으 면 자동 으로 새 파일 을 만 듭 니 다. 이미 존재 하 는 파일 의 EOF 플래그 는 삭 제 됩 니 다.새 데 이 터 를 작성 한 후 자동 으로 파일 끝 에 추가 합 니 다.7. t 는 텍스트 모드 로 8, b 를 바 이 너 리 모드 로 엽 니 다.이 플래그 들 은 rb + (br +) 와 같은 바 이 너 리 방식 으로 파일 만 읽 을 수 있 습 니 다.
2. 파일 을 읽 을 때 fread () 를 사용 합 니 다. 원형 은 다음 과 같 습 니 다.
size_t fread( void *buffer, size_t size, size_t count, FILE *stream );
인자:
buffer 는 읽 은 데 이 터 를 저장 합 니 다.
size 는 각 조각의 바이트 수 입 니 다.
n 은 읽 은 블록 입 니 다. 성공 하면 실제 읽 은 블록 수 (바이트 수 아 님) 를 되 돌려 줍 니 다. 이 함 수 는 바 이 너 리 모드 에서 열 린 파일 에 사 용 됩 니 다.예: char buffer [1024];  FILE *file = fopen(L"\\flash disk\\flyfox\\test.txt", "r");   fread(buffer, 2, 150 , file);//각 2 개의 바이트 에 따라 1590 개의 바 이 트 를 읽 고 모두 2 * 150 = 300 개의 바 이 트 를 읽 으 며 실제 읽 기 블록 수 는 함수 에서 되 돌 릴 수 있 습 니 다.
3. 파일 을 작성 할 때 fwrite () 를 사용 합 니 다.fread 와 대응 하 는 원형 은 다음 과 같 습 니 다.
size_t fwrite( const void *buffer, size_t size, size_t count, FILE *stream );
매개 변수의 의 미 는 fread 와 같다.
4. fseek () 이 함 수 는 보통 바 이 너 리 모드 에서 열 린 파일 에 사 용 됩 니 다. 기능 은 흐름 에서 지정 한 위치 로 위치 하 는 것 입 니 다. 원형 은 다음 과 같 습 니 다.
int fseek( FILE *stream, long offset, int origin );
성공 하면 0 으로 돌아 갑 니 다.
인자:
offset 은 이동 문자 수 입 니 다.
origin 은 이동 의 기준 입 니 다. 파일 포인 터 를 어디서부터 이동 하 는 지 표시 합 니 다. 값 은 다음 과 같 습 니 다.
기호 상수
값.
기준 위치
SEEK_SET
0
파일 시작
SEEK_CUR
1
현재 읽 기와 쓰기 위치
SEEK_END
2
파일 끝
예: fseek (file, 1000 L, SEEK CUR); /읽 기와 쓰기 위 치 를 현재 위치 에서 1234 바이트 fseek (file, 0L, 2) 뒤로 이동 합 니 다.  //읽 기와 쓰기 위 치 를 파일 끝으로 이동 합 니 다.
5. 닫 으 면 fclose 를 사용 합 니 다. 원형 은 다음 과 같 습 니 다.
int fclose( FILE *stream ); 이런 방법 에 대해 서도 몇 줄 의 간단 한 코드 를 제시 합 니 다.
FILE *fp = _wfopen(pFileName, L"ab");
if (!fseek (fp, 100, SEEK_SET))
{
    x = fwrite(buffer, 1, 1024, fp);
    fflush (fp); 
}
fclose (fp);

방법 3. WinCE 의 API 1 을 사용 합 니 다.  파일 을 여 는 CreateFile 이상 의 인자 가 많 습 니 다. 이것 은 EVC 에서 도움 이 되 고 찾 을 수 있 습 니 다.예 를 들 면: HANDLE hFile = CreateFile (pFileName,                GENERIC_WRITE,                 FILE_SHARE_WRITE,                 NULL,                 OPEN_ALWAYS,                 FILE_ATTRIBUTE_NORMAL,                 NULL);
if (hFile == INVALID_HANDLE_VALUE) {         //열기 실패}
2.  파일 의 닫 힌 파일 을 사용 한 후 에는 자원 BOOL CloseHandle (HANDLE hObject) 을 방출 하기 위해 제때에 닫 아야 합 니 다.예 를 들 어 CloseHandle (hFile);
3.  파일 의 읽 기와 쓰기 파일 의 읽 기 ReadFile 파일 의 쓰기 Write File 예 를 들 어 bool b = Write File (hFile, pBuffer, dToWrite, pWrite, NULL);
             //dToWrite 는 쓰기 위 한 바이트 수, pWrite 는 DWORD *, 실제 쓰기 위 한 바이트 수 if (! b) {를 가 져 옵 니 다.       //쓰기 실패}
4.  파일 포인터 의 이동 SetFilePointer: SetFilePointer (hFile, 0, NULL, FILE BEGIN);
5.  파일 정보 파 라미 터 를 가 져 오고 설정 하면 파일 이름 이나 디 렉 터 리 이름 을 표시 합 니 다. DWORD GetFileAtrribute (LPSTR lpFileName);DWORD SetFileAttributes(LPCTSTR lpFileName,DWORD dwFileAttributes);
6.  파일 가 져 오기 및 설정 시간 BOOL GetFileTime BOOL SetFileTime
7.  파일 크기 DWORD GetFileSize (HANDLE hFile, NULL) 가 져 오기;

좋은 웹페이지 즐겨찾기