저장 장치 크기는 어떻게 알수있을까요??? <--제목수정!!
글쓴이: darkkal / 작성시간: 월, 2008/06/02 - 11:50오전
USB 저장 장치 용량을 구하는 프로그램을 짤려고 합니다. [윈도우에서 짤려고 합니다.]
FAT32 로 저장되어 있으면 앞에512byte 의 boot recoder 읽어서 그중에 size에 해당하는 비트를 보면
해당 파일 시스템의 SIZE를 구할 수 있다는 것은 알고 있는데요.
그런데 포멧을 하게 되면 포멧하는 프로그램이 구해서 거기다가 떄려박는 거잖아요,
이걸 짜고 싶은데 난감하네요
왜 난감하냐면요.
파일을 열고 SetFilePointer함수를 이용해서 FILE_END 를 하면 -1 이 리턴됩니다.
(SetFileFointer의 리턴 값이 파일 포인터의 위치)
-1 즉 0xFFFFFFFF 2의 32승 까지 밖에 못가잖아요.
2기가 3기가 짜리 읽을라면 어케해야하는거죠?????
아니 제가 접근한 방법이 올바른 것인지 궁금합니다.
Ps 시스템 함수까지 가르쳐주심 대박임죠 무하^^;;;;;;;;;;;;;;;;;;;;;;;
Forums:
속타..
어케하지. 밑는건 kldp 뿐. 올스톱이넹. ㅠㅠ
GetDiskFreeSpace
우선 제목에 쓸데없는 글자 쓰지 마시구요, "고수님" 같은 질문 내용과 무관한 말도 쓰지 마세요.
윈도우에서 짠다면 GetDiskFreeSpace와 GetDiskFreeSpaceEx를 쓰는 것이 보통입니다. 전자는 2 GB 이상의 크기를 처리하지 못하므로 후자를 써야겠지요.
댓글 감사드립니다.
감사드립니다.
근데 API말고는 방법이 없는건가여??????
fseek 으러 할수는 없나요????????????????
일단 제목부터
일단 제목부터 수정하시지요?
제목 수정했습니다.
기대!!
제가 하는 것이 파일시스템 구축입니다.
USB에 저만의 파일시스템을 만들어서
제 컴퓨터에서 밖에 못읽게 하고 싶은건데요.
첨에 USB사이즈를 알아야하는뎅 (물론 USB에 적용된 FAT header정보를 보면 알수 있지만)
제가 구해야하거등요.
windows api 를 쓰면 header 값 같고 알아내는 거 아닌가요??
전 저만의 파일 시스템 구축이 목적이라서요.
제가 접근한 방법은
unsigned long fileSize
fopen(드라이브)
fseek(드라이브의 끝)
fileSize = ftell(드라이브의 끝)
그런데 결과는 참담하게도 0 이 나오더라고요.
-1 이면 error인데 0 이 나와서 더 이상. ㅠㅠ
댓글 달기