File indexing completed on 2025-12-18 10:21:38
0001
0002
0003
0004
0005
0006
0007
0008
0009
0010
0011
0012
0013
0014
0015
0016
0017
0018
0019
0020
0021 #ifndef __G_FILEUTILS_H__
0022 #define __G_FILEUTILS_H__
0023
0024 #if !defined (__GLIB_H_INSIDE__) && !defined (GLIB_COMPILATION)
0025 #error "Only <glib.h> can be included directly."
0026 #endif
0027
0028 #include <glibconfig.h>
0029 #include <glib/gerror.h>
0030
0031 G_BEGIN_DECLS
0032
0033 #define G_FILE_ERROR g_file_error_quark ()
0034
0035 typedef enum
0036 {
0037 G_FILE_ERROR_EXIST,
0038 G_FILE_ERROR_ISDIR,
0039 G_FILE_ERROR_ACCES,
0040 G_FILE_ERROR_NAMETOOLONG,
0041 G_FILE_ERROR_NOENT,
0042 G_FILE_ERROR_NOTDIR,
0043 G_FILE_ERROR_NXIO,
0044 G_FILE_ERROR_NODEV,
0045 G_FILE_ERROR_ROFS,
0046 G_FILE_ERROR_TXTBSY,
0047 G_FILE_ERROR_FAULT,
0048 G_FILE_ERROR_LOOP,
0049 G_FILE_ERROR_NOSPC,
0050 G_FILE_ERROR_NOMEM,
0051 G_FILE_ERROR_MFILE,
0052 G_FILE_ERROR_NFILE,
0053 G_FILE_ERROR_BADF,
0054 G_FILE_ERROR_INVAL,
0055 G_FILE_ERROR_PIPE,
0056 G_FILE_ERROR_AGAIN,
0057 G_FILE_ERROR_INTR,
0058 G_FILE_ERROR_IO,
0059 G_FILE_ERROR_PERM,
0060 G_FILE_ERROR_NOSYS,
0061 G_FILE_ERROR_FAILED
0062 } GFileError;
0063
0064
0065
0066
0067
0068 typedef enum
0069 {
0070 G_FILE_TEST_IS_REGULAR = 1 << 0,
0071 G_FILE_TEST_IS_SYMLINK = 1 << 1,
0072 G_FILE_TEST_IS_DIR = 1 << 2,
0073 G_FILE_TEST_IS_EXECUTABLE = 1 << 3,
0074 G_FILE_TEST_EXISTS = 1 << 4
0075 } GFileTest;
0076
0077
0078
0079
0080
0081
0082
0083
0084
0085
0086
0087
0088
0089
0090
0091
0092
0093
0094
0095
0096
0097
0098
0099
0100
0101 typedef enum
0102 {
0103 G_FILE_SET_CONTENTS_NONE = 0,
0104 G_FILE_SET_CONTENTS_CONSISTENT = 1 << 0,
0105 G_FILE_SET_CONTENTS_DURABLE = 1 << 1,
0106 G_FILE_SET_CONTENTS_ONLY_EXISTING = 1 << 2
0107 } GFileSetContentsFlags
0108 GLIB_AVAILABLE_ENUMERATOR_IN_2_66;
0109
0110 GLIB_AVAILABLE_IN_ALL
0111 GQuark g_file_error_quark (void);
0112
0113 GLIB_AVAILABLE_IN_ALL
0114 GFileError g_file_error_from_errno (gint err_no);
0115
0116 GLIB_AVAILABLE_IN_ALL
0117 gboolean g_file_test (const gchar *filename,
0118 GFileTest test);
0119 GLIB_AVAILABLE_IN_ALL
0120 gboolean g_file_get_contents (const gchar *filename,
0121 gchar **contents,
0122 gsize *length,
0123 GError **error);
0124 GLIB_AVAILABLE_IN_ALL
0125 gboolean g_file_set_contents (const gchar *filename,
0126 const gchar *contents,
0127 gssize length,
0128 GError **error);
0129 G_GNUC_BEGIN_IGNORE_DEPRECATIONS
0130 GLIB_AVAILABLE_IN_2_66
0131 gboolean g_file_set_contents_full (const gchar *filename,
0132 const gchar *contents,
0133 gssize length,
0134 GFileSetContentsFlags flags,
0135 int mode,
0136 GError **error);
0137 G_GNUC_END_IGNORE_DEPRECATIONS
0138 GLIB_AVAILABLE_IN_ALL
0139 gchar *g_file_read_link (const gchar *filename,
0140 GError **error);
0141
0142
0143 GLIB_AVAILABLE_IN_2_30
0144 gchar *g_mkdtemp (gchar *tmpl);
0145 GLIB_AVAILABLE_IN_2_30
0146 gchar *g_mkdtemp_full (gchar *tmpl,
0147 gint mode);
0148
0149
0150 GLIB_AVAILABLE_IN_ALL
0151 gint g_mkstemp (gchar *tmpl);
0152 GLIB_AVAILABLE_IN_ALL
0153 gint g_mkstemp_full (gchar *tmpl,
0154 gint flags,
0155 gint mode);
0156
0157
0158 GLIB_AVAILABLE_IN_ALL
0159 gint g_file_open_tmp (const gchar *tmpl,
0160 gchar **name_used,
0161 GError **error);
0162 GLIB_AVAILABLE_IN_2_30
0163 gchar *g_dir_make_tmp (const gchar *tmpl,
0164 GError **error);
0165
0166 GLIB_AVAILABLE_IN_ALL
0167 gchar *g_build_path (const gchar *separator,
0168 const gchar *first_element,
0169 ...) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED;
0170 GLIB_AVAILABLE_IN_ALL
0171 gchar *g_build_pathv (const gchar *separator,
0172 gchar **args) G_GNUC_MALLOC;
0173
0174 GLIB_AVAILABLE_IN_ALL
0175 gchar *g_build_filename (const gchar *first_element,
0176 ...) G_GNUC_MALLOC G_GNUC_NULL_TERMINATED;
0177 GLIB_AVAILABLE_IN_ALL
0178 gchar *g_build_filenamev (gchar **args) G_GNUC_MALLOC;
0179 GLIB_AVAILABLE_IN_2_56
0180 gchar *g_build_filename_valist (const gchar *first_element,
0181 va_list *args) G_GNUC_MALLOC;
0182
0183 GLIB_AVAILABLE_IN_ALL
0184 gint g_mkdir_with_parents (const gchar *pathname,
0185 gint mode);
0186
0187 #ifdef G_OS_WIN32
0188
0189
0190
0191
0192
0193 #define G_IS_DIR_SEPARATOR(c) ((c) == G_DIR_SEPARATOR || (c) == '/')
0194
0195 #else
0196
0197 #define G_IS_DIR_SEPARATOR(c) ((c) == G_DIR_SEPARATOR)
0198
0199 #endif
0200
0201 GLIB_AVAILABLE_IN_ALL
0202 gboolean g_path_is_absolute (const gchar *file_name);
0203 GLIB_AVAILABLE_IN_ALL
0204 const gchar *g_path_skip_root (const gchar *file_name);
0205
0206 GLIB_DEPRECATED_FOR(g_path_get_basename)
0207 const gchar *g_basename (const gchar *file_name);
0208 #define g_dirname g_path_get_dirname GLIB_DEPRECATED_MACRO_IN_2_26_FOR(g_path_get_dirname)
0209
0210 GLIB_AVAILABLE_IN_ALL
0211 gchar *g_get_current_dir (void);
0212 GLIB_AVAILABLE_IN_ALL
0213 gchar *g_path_get_basename (const gchar *file_name) G_GNUC_MALLOC;
0214 GLIB_AVAILABLE_IN_ALL
0215 gchar *g_path_get_dirname (const gchar *file_name) G_GNUC_MALLOC;
0216
0217 GLIB_AVAILABLE_IN_2_58
0218 gchar *g_canonicalize_filename (const gchar *filename,
0219 const gchar *relative_to) G_GNUC_MALLOC;
0220
0221 G_END_DECLS
0222
0223 #endif