Home | History | Annotate | Download | only in Support
      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 //===----------------------------------------------------------------------===//
     16 bool 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 
     23 bool 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