## Basic File Operations Basic File Operations — |

## Synopsis

    enum        GnomeVFSOpenMode;
    GnomeVFSResult gnome_vfs_create             (GnomeVFSHandle **handle,
                                                 const gchar *text_uri,
                                                 GnomeVFSOpenMode open_mode,
                                                 gboolean exclusive,
                                                 guint perm);
    GnomeVFSResult gnome_vfs_create_uri         (GnomeVFSHandle **handle,
                                                 GnomeVFSURI *uri,
                                                 GnomeVFSOpenMode open_mode,
                                                 gboolean exclusive,
                                                 guint perm);
    GnomeVFSResult gnome_vfs_open               (GnomeVFSHandle **handle,
                                                 const gchar *text_uri,
                                                 GnomeVFSOpenMode open_mode);
    GnomeVFSResult gnome_vfs_open_uri           (GnomeVFSHandle **handle,
                                                 GnomeVFSURI *uri,
                                                 GnomeVFSOpenMode open_mode);
    GnomeVFSResult gnome_vfs_close              (GnomeVFSHandle *handle);
    GnomeVFSResult gnome_vfs_unlink             (const gchar *text_uri);
    GnomeVFSResult gnome_vfs_unlink_from_uri    (GnomeVFSURI *uri);
    GnomeVFSResult gnome_vfs_move_uri           (GnomeVFSURI *old_uri,
                                                 GnomeVFSURI *new_uri,
                                                 gboolean force_replace);
    GnomeVFSResult gnome_vfs_move               (const gchar *old_text_uri,
                                                 const gchar *new_text_uri,
                                                 gboolean force_replace);
    GnomeVFSResult gnome_vfs_check_same_fs_uris (GnomeVFSURI *source_uri,
                                                 GnomeVFSURI *target_uri,
                                                 gboolean *same_fs_return);
    GnomeVFSResult gnome_vfs_check_same_fs      (const gchar *source,
                                                 const gchar *target,
                                                 gboolean *same_fs_return);
    gboolean    gnome_vfs_uri_exists            (GnomeVFSURI *uri);
    GnomeVFSResult gnome_vfs_create_symbolic_link
                                                (GnomeVFSURI *uri,
                                                 const gchar *target_reference);

## Description

## Details

### enum GnomeVFSOpenMode

    typedef enum {
            GNOME_VFS_OPEN_NONE = 0,
            GNOME_VFS_OPEN_READ = 1 << 0,
            GNOME_VFS_OPEN_WRITE = 1 << 1,
            GNOME_VFS_OPEN_RANDOM = 1 << 2,
    	GNOME_VFS_OPEN_TRUNCATE = 1 << 3
    } GnomeVFSOpenMode;

Mode in which files are opened. If GNOME_VFS_OPEN_RANDOM is not used, the file will be have to be accessed sequentially.

### gnome_vfs_create ()

    GnomeVFSResult gnome_vfs_create             (GnomeVFSHandle **handle,
                                                 const gchar *text_uri,
                                                 GnomeVFSOpenMode open_mode,
                                                 gboolean exclusive,
                                                 guint perm);

Create `text_uri` according to mode `open_mode`. On return, `handle` will then contain a pointer to a handle for the open file.

`handle` : | pointer to a pointer to a GnomeVFSHandle object.
`text_uri` : | string representing the uri to create.
`open_mode` : | mode to leave the file opened in after creation (or `GNOME_VFS_OPEN_MODE_NONE` to leave the file closed after creation).
`exclusive` : | whether the file should be created in "exclusive" mode. i.e. if this flag is nonzero, operation will fail if a file with the same name already exists.
`perm` : | bitmap representing the permissions for the newly created file (Unix style).
Returns : | an integer representing the result of the operation.

### gnome_vfs_create_uri ()

    GnomeVFSResult gnome_vfs_create_uri         (GnomeVFSHandle **handle,
                                                 GnomeVFSURI *uri,
                                                 GnomeVFSOpenMode open_mode,
                                                 gboolean exclusive,
                                                 guint perm);

Create `uri` according to mode `open_mode`. On return, `handle` will then contain a pointer to a handle for the open file.

`handle` : | pointer to a pointer to a GnomeVFSHandle object.
`uri` : | uri for the file to create.
`open_mode` : | open mode.
`exclusive` : | whether the file should be created in "exclusive" mode. i.e. if this flag is nonzero, operation will fail if a file with the same name already exists.
`perm` : | bitmap representing the permissions for the newly created file (Unix style).
Returns : | an integer representing the result of the operation.

### gnome_vfs_open ()

    GnomeVFSResult gnome_vfs_open               (GnomeVFSHandle **handle,
                                                 const gchar *text_uri,
                                                 GnomeVFSOpenMode open_mode);

Open `text_uri` according to mode `open_mode`. On return, `handle` will then contain a pointer to a handle for the open file.

`handle` : | pointer to a pointer to a GnomeVFSHandle object.
`text_uri` : | string representing the uri to open.
`open_mode` : | open mode.
Returns : | an integer representing the result of the operation.

### gnome_vfs_open_uri ()

    GnomeVFSResult gnome_vfs_open_uri           (GnomeVFSHandle **handle,
                                                 GnomeVFSURI *uri,
                                                 GnomeVFSOpenMode open_mode);

Open `uri` according to mode `open_mode`. On return, `handle` will then contain a pointer to a handle for the open file.

`handle` : | pointer to a pointer to a GnomeVFSHandle object.
`uri` : | uri to open.
`open_mode` : | open mode.
Returns : | an integer representing the result of the operation.

### gnome_vfs_close ()

    GnomeVFSResult gnome_vfs_close              (GnomeVFSHandle *handle);

Close file associated with `handle`.

`handle` : | pointer to a GnomeVFSHandle object.
Returns : | an integer representing the result of the operation.

### gnome_vfs_unlink ()

    GnomeVFSResult gnome_vfs_unlink             (const gchar *text_uri);

Unlink `text_uri` (i.e. delete the file).

`text_uri` : | uri of the file to be unlinked.
Returns : | an integer representing the result of the operation.

### gnome_vfs_unlink_from_uri ()

    GnomeVFSResult gnome_vfs_unlink_from_uri    (GnomeVFSURI *uri);

Unlink `uri` (i.e. delete the file).

`uri` : | uri of the file to be unlinked.
Returns : | an integer representing the result of the operation.

### gnome_vfs_move_uri ()

    GnomeVFSResult gnome_vfs_move_uri           (GnomeVFSURI *old_uri,
                                                 GnomeVFSURI *new_uri,
                                                 gboolean force_replace);

Move a file from uri `old_uri` to `new_uri`. This will only work if `old_uri` and `new_uri` are on the same file system. Otherwise, it is necessary to use the more general `gnome_vfs_xfer_uri()` function.

`old_uri` : | source uri.
`new_uri` : | destination uri.
`force_replace` : | if `TRUE`, move `old_uri` to `new_uri` even if there is already a file at `new_uri`. If there is a file, it will be discarded.
Returns : | an integer representing the result of the operation.

### gnome_vfs_move ()

    GnomeVFSResult gnome_vfs_move               (const gchar *old_text_uri,
                                                 const gchar *new_text_uri,
                                                 gboolean force_replace);

Move a file from `old_text_uri` to `new_text_uri`. This will only work if `old_text_uri` and `new_text_uri` are on the same file system. Otherwise, it is necessary to use the more general `gnome_vfs_xfer_uri()` function.

`old_text_uri` : | string representing the source file location.
`new_text_uri` : | string representing the destination file location.
`force_replace` : | if `TRUE`, perform the operation even if it unlinks an existing file at `new_text_uri`.
Returns : | an integer representing the result of the operation.

### gnome_vfs_check_same_fs_uris ()

    GnomeVFSResult gnome_vfs_check_same_fs_uris (GnomeVFSURI *source_uri,
                                                 GnomeVFSURI *target_uri,
                                                 gboolean *same_fs_return);

Check if `source_uri` and `target_uri` are on the same file system.

`source_uri` : | a uri.
`target_uri` : | another uri.
`same_fs_return` : | pointer to a boolean variable which will be set to `TRUE` on return if `source_uri` and `target_uri` are on the same file system.
Returns : | an integer representing the result of the operation.

### gnome_vfs_check_same_fs ()

    GnomeVFSResult gnome_vfs_check_same_fs      (const gchar *source,
                                                 const gchar *target,
                                                 gboolean *same_fs_return);

Check if `source` and `target` are on the same file system.

`source` : | path to a file.
`target` : | path to another file.
`same_fs_return` : | pointer to a boolean variable which will be set to `TRUE` on return if `source` and `target` are on the same file system.
Returns : | an integer representing the result of the operation.

### gnome_vfs_uri_exists ()

    gboolean    gnome_vfs_uri_exists            (GnomeVFSURI *uri);

Check if the uri points to an existing entity.

`uri` : | a uri.
Returns : | `TRUE` if uri exists.

### gnome_vfs_create_symbolic_link ()

    GnomeVFSResult gnome_vfs_create_symbolic_link
                                                (GnomeVFSURI *uri,
                                                 const gchar *target_reference);

Creates a symbolic link, or eventually, a uri link (as necessary) at `uri` pointing to `target_reference`.

`uri` : | uri to create a link at.
`target_reference` : | uri "reference" to point the link to (uri or relative path).
Returns : | an integer representing the result of the operation.