문제

MFC CFILE SEEK 기능을 사용하고 있습니다. 파일 길이를 찾는 데 문제가 있습니다.

CFile cfile;
BOOL bResult = cfile.Open(
L"C:\\2.TXT", 
CFile::modeReadWrite | 
CFile::modeCreate | 
CFile::modeNoTruncate | 
CFile::typeBinary | 
CFile::shareDenyNone);

cfile.Seek(10000, CFile::End);
cfile.Close();

MSDN : 비고

Seek 함수는 포인터를 절대적으로 또는 상대적으로 지정된 양으로 이동시켜 파일 내용에 대한 임의의 액세스를 허용합니다. 찾는 동안 실제로 데이터가 읽지 않습니다. 요청 된 위치가 파일의 크기보다 크면 파일 길이가 해당 위치로 확장되며 예외는 발생하지 않습니다.

MSDN에 따르면 파일 길이가 확장됩니다. 그러나 후 cfile.Close(), 파일은 동일하게 유지됩니다. 왜? 많은 감사합니다!

도움이 되었습니까?

해결책

MSDN이 문제를 약간 잘못 잘못했다고 생각합니다. 호출을 호출 할 때 파일 포인터가 조정되지만 디스크의 실제 파일은 아직 변경되지 않습니다. 그 후 쓰기를 호출하면 실제 파일은 예상 길이가있는 희소 파일 (NTFS) 또는 더 긴 파일 (FAT)이됩니다.

명확한 규칙이없는 것 같습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top