2017-09-25 1 views
0

GetDiskFreeSpace API : MSDN의 API : 여유 공간을 반환하는 동안 할당량을 고려합니까?GetDiskFreeSpace API는 폴더 할당량을 고려합니까?

예를 들어, E : \ 드라이브에 50GB의 여유 공간이 있고 10GB의 하드 제한이있는 폴더가있는 경우이 API를 사용하여 폴더의 여유 공간을 확보하면 얼마를 반환해야합니까? ? 10GB 또는 50GB?

답변

1

예, GetDiskFreeSpaceGetDiskFreeSpaceEx 모두 폴더 할당량을 고려합니다.

NB :GetDiskFreeSpace의 설명서에 따라 루트가 아닌 디렉토리를 쿼리하는 것은 지원되지 않습니다. 나는 그 문서가 시대에 뒤진 것으로 의심하지만, 예방책으로서 그러한 제한이없는 GetDiskFreeSpaceEx을 사용하는 것이 더 안전 할 것이다.

GetDiskFreeSpaceEx 함수는 사용자가 사용할 수있는 여유 바이트 수 (사용자 할당량과 폴더 할당량을 고려)과 총 여유 바이트 수를 반환합니다. 사용자가 사용할 수있는 여유 바이트 수를 원하는 경우 lpFreeBytesAvailable을 사용하고 총 여유 바이트 수 (할당량 무시)를 lpTotalNumberOfFreeBytes으로 지정하십시오.

+0

'GetDiskFreeSpaceEx'는 볼륨 및 공유 (드라이브 문자, 마운트 된 볼륨 및 UNC 루트)에서만 작동하며 전체 경로가 주어지면 루트라고 말합니다. – Anders

+0

@Anders, 필자는 내 대답 (Windows 7 및 2008 R2)을 게시하기 전에이를 테스트했으며 폴더 할당량을 고려했습니다. 그렇게 함으로서'GetDiskFreeSpace'도 마찬가지입니다. 내가 올바르게 기억하면 Windows XP에서는 작동하지 않습니다. 나는 Vista/2008에 대해 완전히 확신하지 못합니다. (귀하의 대답에있는 링크가 Vista에서 수정되었다고 말 했음에도 불구하고) –

+0

비 Ex 버전은 아마도 뿌리에 국한되어 Windows 95에서만 사용할 수 있습니다. 또한 2GB로 제한되므로 더 이상 유용하지 않습니다. . 폴더에있는 Ex 버전을 뿌리를 받아들이는 경우 어떻게 테스트했는지 확실하지 않습니다. – Anders

관련 문제