1 //===- FileSystem.cpp -----------------------------------------------------===// 2 // 3 // The MCLinker Project 4 // 5 // This file is distributed under the University of Illinois Open Source 6 // License. See LICENSE.TXT for details. 7 // 8 //===----------------------------------------------------------------------===// 9 #include "mcld/Config/Config.h" 10 #include "mcld/Support/FileSystem.h" 11 #include "mcld/Support/Path.h" 12 13 //===----------------------------------------------------------------------===// 14 // non-member functions 15 //===----------------------------------------------------------------------===// exists(const Path & pPath)16bool mcld::sys::fs::exists(const Path& pPath) { 17 mcld::sys::fs::FileStatus file_status; 18 mcld::sys::fs::detail::status(pPath, file_status); 19 return (file_status.type() != mcld::sys::fs::StatusError) && 20 (file_status.type() != mcld::sys::fs::FileNotFound); 21 } 22 is_directory(const Path & pPath)23bool mcld::sys::fs::is_directory(const Path& pPath) { 24 FileStatus file_status; 25 detail::status(pPath, file_status); 26 return (file_status.type() == mcld::sys::fs::DirectoryFile); 27 } 28 29 // Include the truly platform-specific parts. 30 #if defined(MCLD_ON_UNIX) 31 #include "Unix/FileSystem.inc" 32 #include "Unix/PathV3.inc" 33 #endif 34 #if defined(MCLD_ON_WIN32) 35 #include "Windows/FileSystem.inc" 36 #include "Windows/PathV3.inc" 37 #endif 38