74 lines
1.9 KiB
C++
74 lines
1.9 KiB
C++
#include<hgl/filesystem/EnumVolume.h>
|
|
#include<iostream>
|
|
|
|
using namespace hgl;
|
|
using namespace hgl::filesystem;
|
|
using namespace std;
|
|
|
|
void out_size(const os_char *front,const uint64 size)
|
|
{
|
|
os_char str[64];
|
|
|
|
if(!int_to_size(str,64,size))
|
|
{
|
|
os_out<<front<<size<<endl;
|
|
}
|
|
else
|
|
{
|
|
os_out<<front<<size<<OS_TEXT("(")<<str<<OS_TEXT(")")<<endl;
|
|
}
|
|
}
|
|
|
|
void out(const VolumeInfo &vi)
|
|
{
|
|
constexpr os_char *DriverTypeName[(size_t)VolumeInfo::DriverType::RANGE_SIZE]=
|
|
{
|
|
OS_TEXT("None"),
|
|
OS_TEXT("Removable"),
|
|
OS_TEXT("Fixed"),
|
|
OS_TEXT("Remote"),
|
|
OS_TEXT("CDROM"),
|
|
OS_TEXT("RamDisk")
|
|
};
|
|
|
|
os_out<<OS_TEXT(" Volume Name: ")<<vi.name<<endl;
|
|
os_out<<OS_TEXT(" Volume Path: ")<<vi.path<<endl;
|
|
|
|
if(RangeCheck<VolumeInfo::DriverType>(vi.driver_type))
|
|
{
|
|
os_out<<OS_TEXT(" Driver Type: ")<<DriverTypeName[(size_t)vi.driver_type-(size_t)VolumeInfo::DriverType::BEGIN_RANGE]<<endl;
|
|
}
|
|
else
|
|
{
|
|
os_out<<OS_TEXT(" Driver Type: unknow!")<<endl;
|
|
}
|
|
|
|
os_out<<OS_TEXT(" Serial: ")<<vi.serial<<endl;
|
|
|
|
os_out<<OS_TEXT(" Volume lable: ")<<vi.volume_label<<endl;
|
|
os_out<<OS_TEXT(" File system: ")<<vi.file_system<<endl;
|
|
os_out<<OS_TEXT("Max filename length: ")<<vi.filename_max_length<<endl;
|
|
os_out<<OS_TEXT(" Unicode support: ")<<(vi.unicode?OS_TEXT("true"):OS_TEXT("false"))<<endl;
|
|
|
|
out_size(OS_TEXT(" Available space: "),vi.available_space);
|
|
out_size(OS_TEXT(" Total space: "),vi.total_space);
|
|
out_size(OS_TEXT(" Free space: "),vi.free_space);
|
|
|
|
os_out<<endl<<endl;
|
|
}
|
|
|
|
void main()
|
|
{
|
|
os_out<<OS_TEXT("Enum Volumes")<<endl<<endl;
|
|
|
|
VolumeCheckConfig vcc;
|
|
VolumeInfoList vil;
|
|
|
|
EnumVolume(vil,vcc);
|
|
|
|
os_out<<OS_TEXT("Volume count: ")<<vil.GetCount()<<endl<<endl;
|
|
|
|
for(auto vi:vil)
|
|
out(vi);
|
|
}
|