1 // FSDrives.h 2 3 #ifndef ZIP7_INC_FS_DRIVES_H 4 #define ZIP7_INC_FS_DRIVES_H 5 6 #include "../../../Common/MyCom.h" 7 #include "../../../Common/MyString.h" 8 9 #include "IFolder.h" 10 11 struct CDriveInfo 12 { 13 FString Name; 14 FString FullSystemName; 15 UInt64 DriveSize; 16 UInt64 FreeSpace; 17 UInt64 ClusterSize; 18 // UString Type; 19 UString VolumeName; 20 UString FileSystemName; 21 UINT DriveType; 22 23 bool KnownSize; 24 bool KnownSizes; 25 bool IsPhysicalDrive; 26 27 FString GetDeviceFileIoName() const; CDriveInfoCDriveInfo28 CDriveInfo(): KnownSize(false), KnownSizes(false), IsPhysicalDrive(false) {} 29 }; 30 31 Z7_CLASS_IMP_NOQIB_3( 32 CFSDrives 33 , IFolderFolder 34 , IFolderOperations 35 , IFolderGetSystemIconIndex 36 ) 37 CObjectVector<CDriveInfo> _drives; 38 bool _volumeMode; 39 bool _superMode; 40 41 HRESULT BindToFolderSpec(CFSTR name, IFolderFolder **resultFolder); 42 void AddExt(FString &s, unsigned index) const; 43 HRESULT GetFileSize(unsigned index, UInt64 &fileSize) const; 44 public: 45 void Init(bool volMode = false, bool superMode = false) 46 { 47 _volumeMode = volMode; 48 _superMode = superMode; 49 } 50 }; 51 52 #endif 53