2017-05-11 11 views
-3

Windows 탐색기와 같은 파일 관리 소프트웨어에서 파일 크기를 볼 때 두 가지 크기, 즉 크기을 읽고 다른 하나는의 크기를 읽습니다.디스크의 파일 크기가 다른 이유는 무엇입니까?

enter image description here

  1. 이유는 두 가지이다?

    디스크의 크기에 파일 할당 테이블 (FAT)의 항목과 같은 일부 오버 헤드가 있습니까? 정교하게 제발 주시겠습니까?

  2. 프로그래밍 방식으로 파일 크기를 쿼리 할 때 항상 디스크 크기에 관계없이 크기를 반환합니다. 이 번호는 어디에서 가져 옵니까? OS가 전체 파일의 내용을 읽어야이 크기를 결정하거나 파일 할당 테이블을 조회해야합니까?

+4

가능한 중복 : https://superuser.com/q/66825/302 –

+3

질문에 코드가 포함되어 있지만 프로그래밍의 핵심 주제는 컴퓨터의 주제입니다. 따라서 [SuperUser] (https://superuser.com/) 대신에 더 적합 할 것입니다. – Abion47

+0

고맙습니다. 수퍼 유저에 대한 대답을 읽었으며 호기심의 요점 (1)을 만족시킵니다. 누군가가 파트 (2)에 답할 수 있도록이 질문을 그대로 두십시오. –

답변

3

발견 된 사용자 수는 this입니다. 그가 말한 내용 :

디스크는 트랙과 섹터로 구성되어 있습니다. Windows에서 OS는 "클러스터"또는 "할당 단위"에있는 파일을위한 공간을 할당 함을 의미합니다.

클러스터 크기는 다양하지만 일반적인 범위는 512 바이트에서 32K 이상입니다. 예를 들어, C : \ 드라이브에 할당 단위는 4096 바이트입니다. 즉, Windows는 길이가 1에서 4096 바이트 인 모든 파일 또는 파일 부분에 대해 4096 바이트를 할당합니다.

파일 크기가 17KB (킬로 바이트) 인 경우 디스크의 크기는 20.48KB (또는 20480 바이트)입니다. 계산은 4096 (1 할당 단위) x 5 = 20480 바이트가됩니다. 17KB 파일을 보유하려면 5 개의 할당 단위가 필요합니다.

또 다른 예는 크기가 2000 바이트 인 파일이있는 경우입니다. 디스크의 파일 크기는 4096 바이트입니다. 그 이유는 전체 파일이 하나의 할당 단위 안에 들어갈지라도 디스크에 4096 개의 공간 (하나의 할당 단위)이 할당되므로 하나의 파일 만 할당 단위를 사용할 수 있고 다른 파일과 공유 할 수 없기 때문입니다.

그래서 디스크의 크기는 파일이 저장된 모든 섹터의 공간입니다. 즉, 일반적으로 디스크의 크기는 항상 실제 크기보다 큽니다.

따라서 속성 창을 볼 때 파일 또는 폴더의 실제 크기는 항상 크기 값에서 가져와야합니다.