Explorar o código

Improved File class

- improved "_equals" method by only checking file
permissions in case the file does exist
Patrick-Laptop %!s(int64=4) %!d(string=hai) anos
pai
achega
fdbcb4f978
Modificáronse 1 ficheiros con 8 adicións e 5 borrados
  1. 8 5
      source/io/File.cpp

+ 8 - 5
source/io/File.cpp

@@ -239,12 +239,15 @@ void ls_std::File::_addToFileListUnix(const std::string& _path, bool _withDirect
 
 bool ls_std::File::_equals(File &_file, File &_foreignFile)
 {
-  bool pathEquals = _file.getAbsoluteFilePath() == _foreignFile.getAbsoluteFilePath();
-  bool readableEquals = _file.canRead() == _foreignFile.canRead();
-  bool writableEquals = _file.canWrite() == _foreignFile.canWrite();
-  bool executableEquals = _file.canExecute() == _foreignFile.canExecute();
+  bool isEqual = _file.getAbsoluteFilePath() == _foreignFile.getAbsoluteFilePath();
 
-  return pathEquals && readableEquals && writableEquals && executableEquals;
+  if(_file.exists() && _foreignFile.exists()) {
+    isEqual = isEqual && _file.canRead() == _foreignFile.canRead();
+    isEqual = isEqual && _file.canWrite() == _foreignFile.canWrite();
+    isEqual = isEqual && _file.canExecute() == _foreignFile.canExecute();
+  }
+
+  return isEqual;
 }
 
 bool ls_std::File::_exists(const std::string& _path)