本文共 1884 字,大约阅读时间需要 6 分钟。
#include#include #include #include int traverseDir(const std::string &_dir);/// @brief : `traverseDir` call `traverseRoute`/// @param : _filePath file abs path/// @param : _fileData file information/// @remark:int traverseRoute(const std::string &_filePath, const _finddata_t &_fileData);char dictionary(unsigned long _disk);int main(void) { unsigned long old_disk = GetLogicalDrives(); unsigned long ret_disk = 0; do { Sleep(1000); // get disk ret_disk = GetLogicalDrives(); if (ret_disk >= old_disk) { // get new disk unsigned long new_disk = old_disk ^ ret_disk; if (new_disk) { // get drive char disk = dictionary(new_disk); const std::string& disk_path = disk + std::string(":/"); traverseDir(disk_path); } } // modify old disk old_disk = ret_disk; } while (true); getchar(); return 0;}char dictionary(unsigned long _disk) { char dict = 'A'; int i = 0; for (; i < 26; i++) { bool flag = _disk & 0x1; if (flag) { break; } _disk >>= 1; } return dict + i;}int traverseRoute(const std::string &_filePath, const _finddata_t &_fileData) { std::string file_name = _filePath + "\\" + _fileData.name;#if defined(_DEBUG) std::cout << _filePath.c_str() << ":" << _fileData.name << std::endl;#endif return 0;}int traverseDir(const std::string &_dir) { std::string dir_new = _dir + "\\*.*"; intptr_t handle; _finddata_t file_data; handle = _findfirst(dir_new.c_str(), &file_data); // check file if (handle == -1) return -1; do { if (file_data.attrib & _A_SUBDIR) { if (strcmp(file_data.name, ".") == 0 || strcmp(file_data.name, "..") == 0) continue; // add to directory "\\" dir_new = _dir + '\\' + file_data.name; traverseDir(dir_new); } else traverseRoute(_dir, file_data); } while (0 == _findnext(handle, &file_data)); _findclose(handle); return 0;}
安全卫士就好似身边的护卫,一旦反叛,安全就只是一纸空谈。
转载地址:http://raqrb.baihongyu.com/