| | |
| | | CreateDirectory(strDir, NULL); |
| | | } |
| | | |
| | | void CToolUnits::deleteDir(const char* pszDir) |
| | | { |
| | | WIN32_FIND_DATA findFileData; |
| | | HANDLE hFind = INVALID_HANDLE_VALUE; |
| | | |
| | | // 拼接上 "\\*",表示目录下的所有文件和文件夹 |
| | | std::string dirPath = pszDir; |
| | | dirPath.append("\\*"); |
| | | |
| | | // 打开目录,查找第一个文件 |
| | | hFind = FindFirstFile(dirPath.c_str(), &findFileData); |
| | | |
| | | if (hFind == INVALID_HANDLE_VALUE) { |
| | | return; |
| | | } |
| | | |
| | | do { |
| | | const std::string fileName = findFileData.cFileName; |
| | | if (fileName == "." || fileName == "..") { |
| | | continue; |
| | | } |
| | | |
| | | std::string fullPath = pszDir; |
| | | fullPath.append("\\").append(fileName); |
| | | |
| | | if (findFileData.dwFileAttributes & FILE_ATTRIBUTE_DIRECTORY) { |
| | | deleteDir(fullPath.c_str()); |
| | | } |
| | | else { |
| | | DWORD fileAttributes = GetFileAttributes(fullPath.c_str()); |
| | | if (fileAttributes != INVALID_FILE_ATTRIBUTES) { |
| | | if (fileAttributes & FILE_ATTRIBUTE_READONLY) { |
| | | SetFileAttributes(fullPath.c_str(), fileAttributes & ~FILE_ATTRIBUTE_READONLY); |
| | | } |
| | | } |
| | | |
| | | if (!DeleteFile(fullPath.c_str())) { |
| | | return; |
| | | } |
| | | } |
| | | } while (FindNextFile(hFind, &findFileData) != 0); |
| | | |
| | | FindClose(hFind); |
| | | |
| | | RemoveDirectory(pszDir); |
| | | } |
| | | |
| | | CString& CToolUnits::floatToString1(float value, CString& strOut) |
| | | { |
| | | strOut.Format(_T("%.1f"), value); |