FileSystem.cpp revision f7ac0f19a1c8d0ad14bcf6456ce368b830fea886
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//===----------------------------------------------------------------------===// 16bool mcld::sys::fs::exists(const Path &pPath) 17{ 18 mcld::sys::fs::FileStatus file_status; 19 mcld::sys::fs::detail::status(pPath, file_status); 20 return (file_status.type() != mcld::sys::fs::StatusError) && 21 (file_status.type() != mcld::sys::fs::FileNotFound); 22} 23 24bool mcld::sys::fs::is_directory(const Path &pPath) 25{ 26 FileStatus file_status; 27 detail::status(pPath, file_status); 28 return (file_status.type() == mcld::sys::fs::DirectoryFile); 29} 30 31// Include the truly platform-specific parts. 32#if defined(MCLD_ON_UNIX) 33#include "Unix/FileSystem.inc" 34#include "Unix/PathV3.inc" 35#endif 36#if defined(MCLD_ON_WIN32) 37#include "Windows/FileSystem.inc" 38#include "Windows/PathV3.inc" 39#endif 40