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)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 
is_directory(const Path & pPath)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