%% options
copyright owner = Dirk Krause
copyright year = 2015-xxxx
license = bsd
%% header
/** @file
File checks.
*/
#ifndef DK4CONF_H_INCLUDED
#include "dk4conf.h"
#endif
#ifndef DK4TYPES_H_INCLUDED
#include "dk4types.h"
#endif
#ifndef DK4ERROR_H_INCLUDED
#include "dk4error.h"
#endif
#ifdef __cplusplus
extern "C" {
#endif
/** Check whether a path exists.
CRT on Windows: Not used.
@param fn File name.
@param erp Error report, may be NULL.
@return 1 if file exists, 0 otherwise.
Note: The function also returns 0 if it fails to obtain information
about a file, i.e. due to missing permissions...
Error codes:
- DK4_E_NOT_SUPPORTED
if wchar_t are used on non-Windows systems,
- DK4_E_INVALID_ARGUMENTS
if fn is NULL,
- DK4_E_NOT_FOUND
if the specified file was not found or retrieving information failed
for other reasons.
*/
int
dk4file_exists(const dkChar *fn, dk4_er_t *erp);
/** Check whether a path name specifies a regular file.
CRT on Windows: Not used.
@param fn File name.
@param erp Error report, may be NULL.
@return 1 for existing regular file, 0 otherwise.
Error codes:
DK4_E_NOT_SUPPORTED if wchar_t are used on non-Windows systems,
DK4_E_INVALID_ARGUMENTS if fn is NULL,
DK4_E_NOT_FOUND if the file does not exist or retrieving
the information failed for some reason,
none if the path exists but is not a regular file.
*/
int
dk4file_is_regular(const dkChar *fn, dk4_er_t *erp);
/** Check whether a path name specifies a directory.
CRT on Windows: Not used.
@param fn File name.
@param erp Error report, may be NULL.
@return 1 for existing directory, 0 otherwise.
Error codes:
- DK4_E_NOT_SUPPORTED
on non-Windows systems,
- DK4_E_INVALID_ARGUMENTS
if fn is NULL,
- DK4_E_NOT_FOUND
if the file does not exist or retrieving the information failed
for some reason,
- none
if the path exists but is not a directory.
*/
int
dk4file_is_directory(const dkChar *fn, dk4_er_t *erp);
#ifdef __cplusplus
}
#endif
%% module
#include "dk4filed.h"
#if DK4_CHAR_SIZE > 1
#include "dk4filew.h"
#else
#include "dk4file8.h"
#endif
int
dk4file_exists(const dkChar *fn, dk4_er_t *erp)
{
#if DK4_CHAR_SIZE > 1
return (dk4file_wc_exists(fn, erp));
#else
return (dk4file_c8_exists(fn, erp));
#endif
}
int
dk4file_is_regular(const dkChar *fn, dk4_er_t *erp)
{
#if DK4_CHAR_SIZE > 1
return (dk4file_wc_is_regular(fn, erp));
#else
return (dk4file_c8_is_regular(fn, erp));
#endif
}
int
dk4file_is_directory(const dkChar *fn, dk4_er_t *erp)
{
#if DK4_CHAR_SIZE > 1
return (dk4file_wc_is_directory(fn, erp));
#else
return (dk4file_c8_is_directory(fn, erp));
#endif
}