| //===- FileSystem.cpp -----------------------------------------------------===// |
| // |
| // The MCLinker Project |
| // |
| // This file is distributed under the University of Illinois Open Source |
| // License. See LICENSE.TXT for details. |
| // |
| //===----------------------------------------------------------------------===// |
| #include "mcld/Config/Config.h" |
| #include "mcld/Support/FileSystem.h" |
| #include "mcld/Support/Path.h" |
| |
| //===----------------------------------------------------------------------===// |
| // non-member functions |
| //===----------------------------------------------------------------------===// |
| bool mcld::sys::fs::exists(const Path& pPath) { |
| mcld::sys::fs::FileStatus file_status; |
| mcld::sys::fs::detail::status(pPath, file_status); |
| return (file_status.type() != mcld::sys::fs::StatusError) && |
| (file_status.type() != mcld::sys::fs::FileNotFound); |
| } |
| |
| bool mcld::sys::fs::is_directory(const Path& pPath) { |
| FileStatus file_status; |
| detail::status(pPath, file_status); |
| return (file_status.type() == mcld::sys::fs::DirectoryFile); |
| } |
| |
| // Include the truly platform-specific parts. |
| #if defined(MCLD_ON_UNIX) |
| #include "Unix/FileSystem.inc" |
| #include "Unix/PathV3.inc" |
| #endif |
| #if defined(MCLD_ON_WIN32) |
| #include "Windows/FileSystem.inc" |
| #include "Windows/PathV3.inc" |
| #endif |