From: Takashi Sawanaka Date: Sun, 3 Feb 2019 05:43:54 +0000 (+0900) Subject: TempFile.cpp: Use Poco::File::remove() instead of SHFileOperation() X-Git-Tag: 2.16.5~456 X-Git-Url: http://git.osdn.net/view?a=commitdiff_plain;h=38e02b7a1c6440033df3fb4ac2c947dac4f8687d;p=winmerge-jp%2Fwinmerge-jp.git TempFile.cpp: Use Poco::File::remove() instead of SHFileOperation() SHFileOperation() is slow. --- diff --git a/Src/TempFile.cpp b/Src/TempFile.cpp index cbe50d981..3edd49651 100644 --- a/Src/TempFile.cpp +++ b/Src/TempFile.cpp @@ -218,16 +218,13 @@ static bool WMrunning(const vector& processIDs, int iPI) */ bool ClearTempfolder(const String &pathName) { - // SHFileOperation expects a ZZ terminated list of paths! - String normalizedPathName = pathName; - paths::normalize(normalizedPathName); // remove trailing slash - const size_t pathSize = normalizedPathName.length() + 2; - std::vector path(pathSize, 0); - memcpy(&path[0], normalizedPathName.c_str(), normalizedPathName.length() * sizeof(TCHAR)); - - SHFILEOPSTRUCT fileop = {0, FO_DELETE, &path[0], 0, FOF_NOCONFIRMATION | - FOF_SILENT | FOF_NOERRORUI, 0, 0, 0}; - SHFileOperation(&fileop); - + try + { + TFile(pathName).remove(true); + } + catch (...) + { + return false; + } return true; }