원형 :
GetVolumeInformation(LPCTSTR lpRootPathName, LPTSTR lpVolumeNameBuffer, DWORD nVolumeNameSize, LPDWORD lpVolumeSerialNumber, LPDWORD lpMaximumComponentLength,LPDWORD lpFileSystemFlags,LPTSTR lpFileSystemNameBuffer,DWORD nFileSystemNameSize)
예제 )
#include
<iostream>
#include
<windows.h>
using
std::cout;
using
std::endl;
void main()
{
char
buffer[256] = {0, };
LPCSTR
DrivePathName;
int
n = 0;
char
DriveName[100];
char
FileSystem[100];
LPCTSTR
drivename;
GetLogicalDriveStrings(256, buffer);
while(buffer[n] != NULL)
{
for
( int i = 0 ; i < sizeof( *(buffer+n) ); i++)
{
DrivePathName= buffer+n;
n+=4;
ZeroMemory( DriveName,
sizeof
( DriveName )); // 여기서 초기화를 해줘야만 값이 안들어갈때 빈칸으로 나온다..
ZeroMemory( FileSystem,
sizeof
( FileSystem ));
ZeroMemory( &drivename,
sizeof
( drivename ));
GetVolumeInformation(DrivePathName,DriveName, 1024, NULL, NULL, NULL, FileSystem, 1024);
cout << "드라이브 경로 : " << DrivePathName<< endl;
cout << "드라이브 이름 : " << DriveName << endl;
cout << "포맷형식 : " << FileSystem << endl << endl;
}
}
}
위에서 ZeroMemory()를 통해서 초기화를 하지 않았을경우,
D드라이브의 경우 가상드라이브이기 때문에
D드라이브의 포맷형식에 값이 안들어가기 때문에 NTFS라고 나온다.. 그러니 D드라이브는 빈칸이지요...
이번예제는 저번에 올렸던 드라이브이름 찾기를 응용해서 쓴거다...
변수명을 좀더 보기좋게 바꿨으니.. 이렇게 활용하면 좋을듯 ^_^;
아.. 저번엔 printf문을 썼었는데..
역시 c++이 편하긴 하네... ~_~
cout 만세 !!!!
좀더 자세한 내용은 MSDN으로~
'C & C++ > C & C++' 카테고리의 다른 글
CFileFind 사용법 (0) | 2012.08.22 |
---|---|
GetLogicalDriveStrings() 현재 연결된 드라이브 이름 알아오기 (0) | 2012.08.21 |
파일 속성 변경 - SetFileAttributes(); (0) | 2012.08.21 |
CString to LPTSTR ( CString 형을 LPTSTR로 변환하기 ) (0) | 2012.08.21 |
시작버튼, 시계, 작업표시줄, 작업관리자 숨기기!! (0) | 2012.08.21 |
댓글