Base::FileInfo: fix left overs in transient directory

Setting ReadWrite permssion removes executable permission, causing
error when removing directory on Linux.
This commit is contained in:
Zheng, Lei
2019-06-21 10:21:44 +08:00
committed by wmayer
parent 50cefc5104
commit aa7d780f5d

View File

@@ -526,7 +526,7 @@ bool FileInfo::deleteDirectory(void) const
#elif defined (FC_OS_LINUX) || defined(FC_OS_CYGWIN) || defined(FC_OS_MACOSX) || defined(FC_OS_BSD)
return rmdir(FileName.c_str()) == 0;
#else
# error "FileInfo::createDirectory() not implemented for this platform!"
# error "FileInfo::rmdir() not implemented for this platform!"
#endif
}
@@ -537,7 +537,12 @@ bool FileInfo::deleteDirectoryRecursive(void) const
for (std::vector<Base::FileInfo>::iterator It = List.begin();It!=List.end();++It) {
if (It->isDir()) {
It->setPermissions(FileInfo::ReadWrite);
// At least on Linux, directory needs execute permission to be
// deleted. We don't really need to set permission for directory
// anyway, since FC code does not touch directory permission.
//
// It->setPermissions(FileInfo::ReadWrite);
It->deleteDirectoryRecursive();
}
else if (It->isFile()) {