added EnumVolumeTest

This commit is contained in:
hyzboy 2021-09-07 13:11:34 +08:00
parent 7349b345d5
commit aea2dd595e
2 changed files with 83 additions and 1 deletions

View File

@ -8,6 +8,8 @@ macro(cm_example_project project_name)
IF(WIN32)
set_debugger_directory(${project_name} ${CMAKE_CURRENT_SOURCE_DIR})
target_sources(${project_name} PRIVATE ${CM_MANIFEST})
ENDIF()
set_property(TARGET ${project_name} PROPERTY FOLDER "CM/Examples")
@ -21,4 +23,11 @@ add_executable(CollectionTest CollectionTest.cpp)
cm_example_project(CollectionTest)
add_executable(FixFilenameTest FixFilenameTest.cpp)
cm_example_project(FixFilenameTest)
cm_example_project(FixFilenameTest)
IF(WIN32)
add_executable(EnumVolumeTest EnumVolumeTest.cpp)
cm_example_project(EnumVolumeTest)
ENDIF(WIN32)

73
EnumVolumeTest.cpp Normal file
View File

@ -0,0 +1,73 @@
#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);
}