core: Add a few more GIO utility functions
This commit is contained in:
parent
70afd6011f
commit
b221b0fdd6
|
|
@ -77,6 +77,91 @@ ot_gfile_ensure_directory (GFile *dir,
|
||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
GFile *
|
||||||
|
ot_gfile_get_child_strconcat (GFile *parent,
|
||||||
|
const char *first,
|
||||||
|
...)
|
||||||
|
{
|
||||||
|
va_list args;
|
||||||
|
GFile *ret;
|
||||||
|
GString *buf;
|
||||||
|
const char *arg;
|
||||||
|
|
||||||
|
g_return_val_if_fail (first != NULL, NULL);
|
||||||
|
|
||||||
|
va_start (args, first);
|
||||||
|
|
||||||
|
buf = g_string_new (first);
|
||||||
|
|
||||||
|
while ((arg = va_arg (args, const char *)) != NULL)
|
||||||
|
g_string_append (buf, arg);
|
||||||
|
|
||||||
|
ret = g_file_get_child (parent, buf->str);
|
||||||
|
|
||||||
|
g_string_free (buf, TRUE);
|
||||||
|
|
||||||
|
return ret;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ot_gfile_unlink:
|
||||||
|
* @path: Path to file
|
||||||
|
* @cancellable: a #GCancellable
|
||||||
|
* @error: a #GError
|
||||||
|
*
|
||||||
|
* Like g_file_delete(), except this function does not follow Unix
|
||||||
|
* symbolic links, and will delete a symbolic link even if it's
|
||||||
|
* pointing to a nonexistent file. In other words, this function
|
||||||
|
* merely wraps the raw Unix function unlink().
|
||||||
|
*
|
||||||
|
* Returns: %TRUE on success, %FALSE on error
|
||||||
|
*/
|
||||||
|
gboolean
|
||||||
|
ot_gfile_unlink (GFile *path,
|
||||||
|
GCancellable *cancellable,
|
||||||
|
GError **error)
|
||||||
|
{
|
||||||
|
if (g_cancellable_set_error_if_cancelled (cancellable, error))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
if (unlink (ot_gfile_get_path_cached (path)) < 0)
|
||||||
|
{
|
||||||
|
ot_util_set_error_from_errno (error, errno);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ot_gfile_rename:
|
||||||
|
* @from: Current path
|
||||||
|
* @to: New path
|
||||||
|
* @cancellable: a #GCancellable
|
||||||
|
* @error: a #GError
|
||||||
|
*
|
||||||
|
* This function wraps the raw Unix function rename().
|
||||||
|
*
|
||||||
|
* Returns: %TRUE on success, %FALSE on error
|
||||||
|
*/
|
||||||
|
gboolean
|
||||||
|
ot_gfile_rename (GFile *from,
|
||||||
|
GFile *to,
|
||||||
|
GCancellable *cancellable,
|
||||||
|
GError **error)
|
||||||
|
{
|
||||||
|
if (g_cancellable_set_error_if_cancelled (cancellable, error))
|
||||||
|
return FALSE;
|
||||||
|
|
||||||
|
if (rename (ot_gfile_get_path_cached (from),
|
||||||
|
ot_gfile_get_path_cached (to)) < 0)
|
||||||
|
{
|
||||||
|
ot_util_set_error_from_errno (error, errno);
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
return TRUE;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
gboolean
|
gboolean
|
||||||
ot_gfile_load_contents_utf8 (GFile *file,
|
ot_gfile_load_contents_utf8 (GFile *file,
|
||||||
char **contents_out,
|
char **contents_out,
|
||||||
|
|
|
||||||
|
|
@ -36,6 +36,8 @@ G_BEGIN_DECLS
|
||||||
|
|
||||||
GFileType ot_gfile_type_for_mode (guint32 mode);
|
GFileType ot_gfile_type_for_mode (guint32 mode);
|
||||||
|
|
||||||
|
GFile *ot_gfile_get_child_strconcat (GFile *parent, const char *first, ...) G_GNUC_NULL_TERMINATED;
|
||||||
|
|
||||||
GFile *ot_gfile_new_for_path (const char *path);
|
GFile *ot_gfile_new_for_path (const char *path);
|
||||||
|
|
||||||
const char *ot_gfile_get_path_cached (GFile *file);
|
const char *ot_gfile_get_path_cached (GFile *file);
|
||||||
|
|
@ -44,6 +46,15 @@ const char *ot_gfile_get_basename_cached (GFile *file);
|
||||||
|
|
||||||
gboolean ot_gfile_ensure_directory (GFile *dir, gboolean with_parents, GError **error);
|
gboolean ot_gfile_ensure_directory (GFile *dir, gboolean with_parents, GError **error);
|
||||||
|
|
||||||
|
gboolean ot_gfile_rename (GFile *src,
|
||||||
|
GFile *dest,
|
||||||
|
GCancellable *cancellable,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
|
gboolean ot_gfile_unlink (GFile *path,
|
||||||
|
GCancellable *cancellable,
|
||||||
|
GError **error);
|
||||||
|
|
||||||
gboolean ot_gfile_load_contents_utf8 (GFile *file,
|
gboolean ot_gfile_load_contents_utf8 (GFile *file,
|
||||||
char **contents_out,
|
char **contents_out,
|
||||||
char **etag_out,
|
char **etag_out,
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue