Salome HOME
[EDF30062] : Steering proxy threshold/directory without environement considerations...
[modules/kernel.git] / src / Basics / Basics_DirUtils.hxx
index 048bdfea0d09ca1c49d71740ebf8c62bee5c2c96..de5f0378a10c7e7223b67e54514ace015564a8f0 100644 (file)
@@ -1,27 +1,25 @@
-//  Copyright (C) 2007-2008  CEA/DEN, EDF R&D, OPEN CASCADE
+// Copyright (C) 2007-2024  CEA, EDF, OPEN CASCADE
 //
-//  Copyright (C) 2003-2007  OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
-//  CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+// This library is free software; you can redistribute it and/or
+// modify it under the terms of the GNU Lesser General Public
+// License as published by the Free Software Foundation; either
+// version 2.1 of the License, or (at your option) any later version.
 //
-//  This library is free software; you can redistribute it and/or
-//  modify it under the terms of the GNU Lesser General Public
-//  License as published by the Free Software Foundation; either
-//  version 2.1 of the License.
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
 //
-//  This library is distributed in the hope that it will be useful,
-//  but WITHOUT ANY WARRANTY; without even the implied warranty of
-//  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-//  Lesser General Public License for more details.
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
 //
-//  You should have received a copy of the GNU Lesser General Public
-//  License along with this library; if not, write to the Free Software
-//  Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
-//
-//  See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
+// See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
 //
+
 //  SALOME Utils : general SALOME's definitions and tools
 //  File   : Basics_DirUtils.hxx
-//  Autor  : Alexander A. BORODIN
+//  Author  : Alexander A. BORODIN
 //  Module : SALOME
 //
 #ifndef _Basics_DIRUTILS_HXX_
 namespace Kernel_Utils
 {
   // Extracts and returns the base name of the specified file name.
-  BASICS_EXPORT std::string GetBaseName( const std::string& file_path );
+  BASICS_EXPORT std::string GetBaseName( const std::string& file_path, bool with_extension = true );
+
+  // Extracts and returns the dir name of the specified file name.
+  BASICS_EXPORT std::string GetDirName( const std::string& file_path );
 
   // Returns the unique temporary directory, that is defined in tmp_path_env if this variable is set
   // otherwise return /tmp/something/ for Unix or c:\something\ for WIN32
@@ -48,20 +49,30 @@ namespace Kernel_Utils
   // /tmp/something/ for Unix or c:\something\ for WIN32
   BASICS_EXPORT std::string GetTmpDir();
 
-
   // Returns the unique temporary file name without any extension
   // /tmp/something/file for Unix or c:\something\file for WIN32
   BASICS_EXPORT std::string GetTmpFileName();
 
+  // Adds extension in the end of the specified file name.
+  BASICS_EXPORT std::string AddExtension( const std::string& name );
+
   // Returns True(False) if the path (not)exists
   BASICS_EXPORT bool IsExists( const std::string& path );
 
+  // Returns True(False) if the path is writable
+  BASICS_EXPORT bool IsWritable( const std::string& path );
+
   // Returns directory by path and converts it to native system format
   BASICS_EXPORT std::string GetDirByPath( const std::string& path );
 
   // Returns True(False) if the path (not) empty
   // Also returns False if the path is not valid
   BASICS_EXPORT bool IsEmptyDir( const std::string& path );
+
+  BASICS_EXPORT std::string BackSlashToSlash( const std::string& path );
+
+  // Returns getenv("HOME") for Unix or getenv("USERPROFILE") for WIN32
+  BASICS_EXPORT std::string HomePath();
 }
 
 #endif