abb8db470ca7995be6e7acfab968a7d595263cfavboxsync/* $Id$ */
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync/** @file
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync * IPRT - RTDirExists, generic implementation.
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync */
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync/*
c7814cf6e1240a519cbec0441e033d0e2470ed00vboxsync * Copyright (C) 2009-2010 Oracle Corporation
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync *
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync * This file is part of VirtualBox Open Source Edition (OSE), as
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync * available from http://www.virtualbox.org. This file is free software;
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync * you can redistribute it and/or modify it under the terms of the GNU
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync * General Public License (GPL) as published by the Free Software
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync * Foundation, in version 2 as it comes in the "COPYING" file of the
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync * VirtualBox OSE distribution. VirtualBox OSE is distributed in the
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync * hope that it will be useful, but WITHOUT ANY WARRANTY of any kind.
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync *
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync * The contents of this file may alternatively be used under the terms
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync * of the Common Development and Distribution License Version 1.0
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync * (CDDL) only, as it comes in the "COPYING.CDDL" file of the
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync * VirtualBox OSE distribution, in which case the provisions of the
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync * CDDL are applicable instead of those of the GPL.
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync *
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync * You may elect to license modified versions of this file under the
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync * terms and conditions of either the GPL or the CDDL or both.
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync */
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync/*******************************************************************************
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync* Header Files *
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync*******************************************************************************/
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync#define LOG_GROUP RTLOGGROUP_DIR
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync#include "internal/iprt.h"
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync
2e1191c84d16f17923d7e0e683b43a9102e775e4vboxsync#include <iprt/dir.h>
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync#include <iprt/err.h>
2e1191c84d16f17923d7e0e683b43a9102e775e4vboxsync#include <iprt/log.h>
2e1191c84d16f17923d7e0e683b43a9102e775e4vboxsync#include <iprt/path.h>
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync
abb8db470ca7995be6e7acfab968a7d595263cfavboxsyncRTDECL(bool) RTDirExists(const char *pszPath)
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync{
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync RTFSOBJINFO ObjInfo;
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync int rc = RTPathQueryInfoEx(pszPath, &ObjInfo, RTFSOBJATTRADD_NOTHING, RTPATH_F_FOLLOW_LINK);
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync bool fRc = RT_SUCCESS(rc)
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync && RTFS_IS_DIRECTORY(ObjInfo.Attr.fMode);
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync LogFlow(("RTDirExists(%p:{%s}): returns %RTbool (%Rrc)\n", pszPath, pszPath, fRc, rc));
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync return fRc;
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync}
abb8db470ca7995be6e7acfab968a7d595263cfavboxsync