MRPT  1.9.9
Directories, files, and file names

Detailed Description

Header: #include <mrpt/system/filesystem.h>.

Library: [mrpt-system]

Collaboration diagram for Directories, files, and file names:

Macros

#define ASSERT_FILE_EXISTS_(FIL)
 
#define ASSERT_DIRECTORY_EXISTS_(DIR)
 

Functions

std::string mrpt::system::getTempFileName ()
 Returns the name of a proposed temporary file name. More...
 
std::string mrpt::system::getcwd ()
 Returns the current working directory. More...
 
std::string mrpt::system::getShareMRPTDir ()
 Attempts to find the directory [PREFIX/]share/mrpt/ and returns its absolute path, or empty string if not found. More...
 
bool mrpt::system::createDirectory (const std::string &dirName)
 Creates a directory. More...
 
bool mrpt::system::deleteFile (const std::string &fileName)
 Deletes a single file. More...
 
void mrpt::system::deleteFiles (const std::string &s)
 Delete one or more files, especified by the (optional) path and the file name (including '?' or '*') - Use forward slash ('/') for directories for compatibility between Windows and Linux, since they will be internally traslated into backward slashes ('\') if MRPT is compiled under Windows. More...
 
bool mrpt::system::renameFile (const std::string &oldFileName, const std::string &newFileName, std::string *error_msg=nullptr)
 Renames a file - If the target path is different and the filesystem allows it, it will be moved to the new location. More...
 
bool mrpt::system::deleteFilesInDirectory (const std::string &s, bool deleteDirectoryAsWell=false)
 Delete all the files in a given directory (nothing done if directory does not exists, or path is a file). More...
 
std::string mrpt::system::extractFileName (const std::string &filePath)
 Extract just the name (without extension) of a filename from a complete path plus name plus extension. More...
 
std::string mrpt::system::extractFileExtension (const std::string &filePath, bool ignore_gz=false)
 Extract the extension of a filename. More...
 
std::string mrpt::system::extractFileDirectory (const std::string &filePath)
 Extract the whole path (the directory) of a filename from a complete path plus name plus extension. More...
 
bool mrpt::system::fileExists (const std::string &fileName)
 Test if a given file (or directory) exists. More...
 
bool mrpt::system::directoryExists (const std::string &fileName)
 Test if a given directory exists (it fails if the given path refers to an existing file). More...
 
std::string mrpt::system::fileNameStripInvalidChars (const std::string &filename, const char replacement_to_invalid_chars='_')
 Replace invalid filename chars by underscores ('_') or any other user-given char. More...
 
std::string mrpt::system::fileNameChangeExtension (const std::string &filename, const std::string &newExtension)
 Replace the filename extension by another one. More...
 
uint64_t mrpt::system::getFileSize (const std::string &fileName)
 Return the size of the given file, or size_t(-1) if some error is found accessing that file. More...
 
time_t mrpt::system::getFileModificationTime (const std::string &filename)
 Return the time of the file last modification, or "0" if the file doesn't exist. More...
 
std::string mrpt::system::filePathSeparatorsToNative (const std::string &filePath)
 Windows: replace all '/'->'\' , in Linux/MacOS: replace all '\'->'/'. More...
 
bool mrpt::system::copyFile (const std::string &sourceFile, const std::string &targetFile, std::string *outErrStr=nullptr, bool copyAttribs=true)
 Copies file sourceFile to targetFile. More...
 

Macro Definition Documentation

◆ ASSERT_DIRECTORY_EXISTS_

#define ASSERT_DIRECTORY_EXISTS_ (   DIR)
Value:
std::string("Assert directory existence failed: ") + \
::std::string(DIR))
#define ASSERTMSG_(f, __ERROR_MSG)
Defines an assertion mechanism.
Definition: exceptions.h:108
GLsizei const GLchar ** string
Definition: glext.h:4116
bool directoryExists(const std::string &fileName)
Test if a given directory exists (it fails if the given path refers to an existing file)...
Definition: filesystem.cpp:137

Definition at line 26 of file filesystem.h.

◆ ASSERT_FILE_EXISTS_

#define ASSERT_FILE_EXISTS_ (   FIL)
Value:
std::string("Assert file existence failed: ") + ::std::string(FIL))
bool fileExists(const std::string &fileName)
Test if a given file (or directory) exists.
Definition: filesystem.cpp:128
#define ASSERTMSG_(f, __ERROR_MSG)
Defines an assertion mechanism.
Definition: exceptions.h:108
GLsizei const GLchar ** string
Definition: glext.h:4116

Definition at line 21 of file filesystem.h.

Referenced by mrpt::pbmap::config_heuristics::load_params(), mrpt::graphslam::CGraphSlamEngine< GRAPH_T >::TRGBDInfoFileParams::parseFile(), mrpt::pbmap::PbMapMaker::PbMapMaker(), and GraphTester< my_graph_t >::test_optimize_compare_known_solution().

Function Documentation

◆ copyFile()

bool mrpt::system::copyFile ( const std::string sourceFile,
const std::string targetFile,
std::string outErrStr = nullptr,
bool  copyAttribs = true 
)

Copies file sourceFile to targetFile.

If the target file exists, it will be overwritten. If the target file cannot be overwritten, the function first tries to change its permissions/attributes and retries opening it for write.

Note
Only for Windows: After a successful copy, if copyAttribs is true, the attributes of the source file are also copied. Note that not all attributes can be copied: http://msdn2.microsoft.com/en-us/library/aa365535.aspx
Returns
true on success, false on any error, whose description can be optionally get in outErrStr

Definition at line 390 of file filesystem.cpp.

References mrpt::system::directoryExists(), mrpt::system::os::fclose(), mrpt::system::fileExists(), mrpt::system::filePathSeparatorsToNative(), and mrpt::system::os::fopen().

Here is the call graph for this function:

◆ createDirectory()

bool mrpt::system::createDirectory ( const std::string dirName)

Creates a directory.

Returns
Returns false on any error, true on directory created or already existed.

Definition at line 161 of file filesystem.cpp.

References mrpt::format().

Referenced by mrpt::slam::CGridMapAligner::AlignPDF_robustMatch(), mrpt::hmtslam::CTopLCDetector_GridMatching::computeTopologicalObservationModel(), mrpt::nav::CParameterizedTrajectoryGenerator::debugDumpInFiles(), mrpt::nav::CAbstractPTGBasedReactive::enableLogFile(), mrpt::hmtslam::CHMTSLAM::initializeEmptyMap(), CGraphSlamHandler< GRAPH_T >::initOutputDir(), mrpt::hwdrivers::CSwissRanger3DCamera::setPathForExternalImages(), mrpt::hwdrivers::CCameraSensor::setPathForExternalImages(), and mrpt::nav::PlannerRRT_SE2_TPS::solve().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ deleteFile()

bool mrpt::system::deleteFile ( const std::string fileName)

Deletes a single file.

For multiple files see deleteFiles

Returns
Returns false on any error, true on everything OK.
See also
deleteFiles

Definition at line 182 of file filesystem.cpp.

Referenced by mrpt::system::deleteFilesInDirectory().

Here is the caller graph for this function:

◆ deleteFiles()

void mrpt::system::deleteFiles ( const std::string s)

Delete one or more files, especified by the (optional) path and the file name (including '?' or '*') - Use forward slash ('/') for directories for compatibility between Windows and Linux, since they will be internally traslated into backward slashes ('\') if MRPT is compiled under Windows.

See also
deleteFile

Definition at line 190 of file filesystem.cpp.

References mrpt::system::os::fprintf(), MRPT_END, MRPT_START, mrpt::system::os::sprintf(), and mrpt::system::os::strcat().

Here is the call graph for this function:

◆ deleteFilesInDirectory()

bool mrpt::system::deleteFilesInDirectory ( const std::string s,
bool  deleteDirectoryAsWell = false 
)

Delete all the files in a given directory (nothing done if directory does not exists, or path is a file).

See also
deleteFile
Returns
true on success

Definition at line 218 of file filesystem.cpp.

References _rmdir, mrpt::system::deleteFile(), mrpt::system::directoryExists(), mrpt::system::CDirectoryExplorer::explore(), FILE_ATTRIB_ARCHIVE, and FILE_ATTRIB_DIRECTORY.

Referenced by mrpt::slam::CGridMapAligner::AlignPDF_robustMatch(), mrpt::hmtslam::CHMTSLAM::initializeEmptyMap(), and CGraphSlamHandler< GRAPH_T >::initOutputDir().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ directoryExists()

bool mrpt::system::directoryExists ( const std::string fileName)

Test if a given directory exists (it fails if the given path refers to an existing file).

See also
fileExists

Definition at line 137 of file filesystem.cpp.

References _stat.

Referenced by mrpt::system::copyFile(), mrpt::system::deleteFilesInDirectory(), mrpt::nav::CAbstractPTGBasedReactive::enableLogFile(), mrpt::system::find_mrpt_shared_dir(), mrpt::graphslam::CGraphSlamEngine< GRAPH_T >::generateReportFiles(), mrpt::system::getShareMRPTDir(), CGraphSlamHandler< GRAPH_T >::initOutputDir(), mrpt::gui::CPanelCameraSelection::OnbtnBrowseRawlogClick(), and mrpt::system::CFileSystemWatcher::thread_win32_watch().

Here is the caller graph for this function:

◆ extractFileDirectory()

string mrpt::system::extractFileDirectory ( const std::string filePath)

Extract the whole path (the directory) of a filename from a complete path plus name plus extension.

This function works for either "/" or "\" directory separators.

See also
extractFileName,extractFileExtension

Definition at line 78 of file filesystem.cpp.

Referenced by mrpt::obs::CRawlog::detectImagesDirectory(), mrpt::system::find_mrpt_shared_dir(), mrpt::system::getShareMRPTDir(), mrpt::graphslam::CGraphSlamEngine< GRAPH_T >::initClass(), mrpt::gui::CPanelCameraSelection::OnbtnBrowseRawlogClick(), run_rnav_test(), mrpt::graphslam::CGraphSlamEngine< GRAPH_T >::TRGBDInfoFileParams::setRawlogFile(), and TEST().

Here is the caller graph for this function:

◆ extractFileExtension()

string mrpt::system::extractFileExtension ( const std::string filePath,
bool  ignore_gz = false 
)

Extract the extension of a filename.

For example, for "dummy.cpp", it will return "cpp". If "ignore_gz" is true, the second extension will be returned if the file name ends in ".gz", for example, for "foo.map.gz", this will return "map".

See also
extractFileName,extractFileDirectory

Definition at line 98 of file filesystem.cpp.

Referenced by mrpt::vision::checkerBoardCameraCalibration(), mrpt::system::CDirectoryExplorer::filterByExtension(), mrpt::obs::CObservation3DRangeScan::load(), mrpt::maps::CPointsMapXYZI::loadFromKittiVelodyneFile(), run_test_pf_localization(), and TEST().

Here is the caller graph for this function:

◆ extractFileName()

string mrpt::system::extractFileName ( const std::string filePath)

Extract just the name (without extension) of a filename from a complete path plus name plus extension.

This function works for either "/" or "\" directory separators.

See also
extractFileExtension,extractFileDirectory

Definition at line 62 of file filesystem.cpp.

Referenced by mrpt::vision::checkerBoardCameraCalibration(), mrpt::obs::CRawlog::detectImagesDirectory(), mrpt::graphslam::CGraphSlamEngine< GRAPH_T >::initClass(), mrpt::hwdrivers::TCaptureOptions_DUO3D::m_camera_ext_params_from_yml(), mrpt::hwdrivers::TCaptureOptions_DUO3D::m_camera_int_params_from_yml(), mrpt::hwdrivers::TCaptureOptions_DUO3D::m_rectify_map_from_yml(), mrpt::system::CTimeLogger::saveToMFile(), mrpt::graphslam::CGraphSlamEngine< GRAPH_T >::TRGBDInfoFileParams::setRawlogFile(), and TEST().

Here is the caller graph for this function:

◆ fileExists()

◆ fileNameChangeExtension()

std::string mrpt::system::fileNameChangeExtension ( const std::string filePath,
const std::string newExtension 
)

Replace the filename extension by another one.

Example:

fileNameChangeExtension("cool.txt","bar") // -> "cool.bar"

Definition at line 373 of file filesystem.cpp.

Referenced by mrpt::obs::CObservation3DRangeScan::points3D_convertToExternalStorage(), mrpt::obs::CObservation3DRangeScan::rangeImage_convertToExternalStorage(), and TEST().

Here is the caller graph for this function:

◆ fileNameStripInvalidChars()

std::string mrpt::system::fileNameStripInvalidChars ( const std::string filename,
const char  replacement_to_invalid_chars = '_' 
)

◆ filePathSeparatorsToNative()

std::string mrpt::system::filePathSeparatorsToNative ( const std::string filePath)

Windows: replace all '/'->'\' , in Linux/MacOS: replace all '\'->'/'.

Definition at line 612 of file filesystem.cpp.

Referenced by mrpt::system::copyFile(), and TEST().

Here is the caller graph for this function:

◆ getcwd()

std::string mrpt::system::getcwd ( )

Returns the current working directory.

Definition at line 251 of file filesystem.cpp.

References MRPT_END, MRPT_START, and THROW_EXCEPTION.

◆ getFileModificationTime()

time_t mrpt::system::getFileModificationTime ( const std::string filename)

Return the time of the file last modification, or "0" if the file doesn't exist.

Definition at line 628 of file filesystem.cpp.

◆ getFileSize()

uint64_t mrpt::system::getFileSize ( const std::string fileName)

Return the size of the given file, or size_t(-1) if some error is found accessing that file.

Definition at line 351 of file filesystem.cpp.

Referenced by mrpt::io::CFileGZInputStream::open().

Here is the caller graph for this function:

◆ getShareMRPTDir()

std::string mrpt::system::getShareMRPTDir ( )

Attempts to find the directory [PREFIX/]share/mrpt/ and returns its absolute path, or empty string if not found.

Example return paths: Linux after installing = /usr/share/mrpt/; manually-built system = [CMAKE_SOURCE_DIR]/share/mrpt/, etc.

Definition at line 641 of file filesystem.cpp.

References mrpt::system::directoryExists(), and mrpt::system::extractFileDirectory().

Here is the call graph for this function:

◆ getTempFileName()

std::string mrpt::system::getTempFileName ( )

Returns the name of a proposed temporary file name.

Definition at line 283 of file filesystem.cpp.

References ASSERT_.

Referenced by mrpt::io::zip::decompress_gz_data_block(), run_rnav_test(), and TEST().

Here is the caller graph for this function:

◆ renameFile()

bool mrpt::system::renameFile ( const std::string oldFileName,
const std::string newFileName,
std::string error_msg = nullptr 
)

Renames a file - If the target path is different and the filesystem allows it, it will be moved to the new location.

Returns
false on any error. In that case, if a pointer to a receiver string is passed in error_msg, a description of the error is saved there.

Definition at line 309 of file filesystem.cpp.

Referenced by CGraphSlamHandler< GRAPH_T >::initOutputDir().

Here is the caller graph for this function:



Page generated by Doxygen 1.8.14 for MRPT 1.9.9 Git: 8fe78517f Sun Jul 14 19:43:28 2019 +0200 at lun oct 28 02:10:00 CET 2019