#pragma once #include #include #include "../protobuf/stream.pb.h" #include "../DataManage/RWData.h" #define MAX_FILE_DIALOG_NAME_BUFFER 1024 struct FileInfoStruct { char type; std::wstring filePath; std::wstring fileName; std::wstring ext; }; enum CALLFUNC { GetLogicalDrive=0, ScanDir, }; class FileDialog { public: FileDialog(); ~FileDialog(); public: void Request(const ReadData& rd, ::stream::ResponseAny** response); //查询路径下的文件、文件夹等 private: bool ScanDir(std::wstring vPath); //查询路径下的文件、文件夹等 void GetLogicalDrive(::stream::ResponseAny** rsp); //获取盘符等,空格隔开 //void ComposeNewPath(std::vector::iterator vIter); //组合为一个路径 private: std::string m_DriverItem; //选中的盘符 std::vector m_FileList; //当前路径下的文件、文件夹 std::wstring m_SelectedFileName; //选取的文件名 std::wstring m_CurrentPath; //当前的路径 std::vector m_CurrentPath_Decomposition; //当前路径的文件名集合 std::wstring m_CurrentFilterExt; //文件后缀 };