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:
@@ -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()) {
|
||||
|
||||
Reference in New Issue
Block a user