GnomeVFSFileInfo

GnomeVFSFileInfo — stores information about files, GnomeVFS equivalent of stat

Synopsis




enum        GnomeVFSFileFlags;
enum        GnomeVFSFileType;
enum        GnomeVFSFileInfoFields;
enum        GnomeVFSFilePermissions;
enum        GnomeVFSFileInfoOptions;
enum        GnomeVFSSetFileInfoMask;
            GnomeVFSGetFileInfoResult;
typedef     GnomeVFSInodeNumber;
            GnomeVFSFileInfo;
#define     GNOME_VFS_FILE_INFO_SYMLINK     (info)
#define     GNOME_VFS_FILE_INFO_SET_SYMLINK (info, value)
#define     GNOME_VFS_FILE_INFO_LOCAL       (info)
#define     GNOME_VFS_FILE_INFO_SET_LOCAL   (info, value)
#define     GNOME_VFS_FILE_INFO_SUID        (info)
#define     GNOME_VFS_FILE_INFO_SGID        (info)
#define     GNOME_VFS_FILE_INFO_STICKY      (info)
#define     GNOME_VFS_FILE_INFO_SET_SUID    (info, value)
#define     GNOME_VFS_FILE_INFO_SET_SGID    (info, value)
#define     GNOME_VFS_FILE_INFO_SET_STICKY  (info, value)
GnomeVFSFileInfo* gnome_vfs_file_info_new   (void);
void        gnome_vfs_file_info_unref       (GnomeVFSFileInfo *info);
void        gnome_vfs_file_info_ref         (GnomeVFSFileInfo *info);
void        gnome_vfs_file_info_clear       (GnomeVFSFileInfo *info);
const char* gnome_vfs_file_info_get_mime_type
                                            (GnomeVFSFileInfo *info);
void        gnome_vfs_file_info_copy        (GnomeVFSFileInfo *dest,
                                             const GnomeVFSFileInfo *src);
GnomeVFSFileInfo* gnome_vfs_file_info_dup   (const GnomeVFSFileInfo *orig);
gboolean    gnome_vfs_file_info_matches     (const GnomeVFSFileInfo *a,
                                             const GnomeVFSFileInfo *b);
GList*      gnome_vfs_file_info_list_ref    (GList *list);
GList*      gnome_vfs_file_info_list_unref  (GList *list);
GList*      gnome_vfs_file_info_list_copy   (GList *list);
void        gnome_vfs_file_info_list_free   (GList *list);
GnomeVFSGetFileInfoResult* gnome_vfs_get_file_info_result_dup
                                            (GnomeVFSGetFileInfoResult *result);
void        gnome_vfs_get_file_info_result_free
                                            (GnomeVFSGetFileInfoResult *result);

Description

Details

enum GnomeVFSFileFlags

typedef enum {
	GNOME_VFS_FILE_FLAGS_NONE = 0,
	GNOME_VFS_FILE_FLAGS_SYMLINK = 1 << 0,
	GNOME_VFS_FILE_FLAGS_LOCAL = 1 << 1
} GnomeVFSFileFlags;

Packed boolean bitfield representing special flags a GnomeVFSFileInfo struct can have.

GNOME_VFS_FILE_FLAGS_NONE no flags
GNOME_VFS_FILE_FLAGS_SYMLINK whether the file is a symlink.
GNOME_VFS_FILE_FLAGS_LOCAL whether the file is on a local filesystem

enum GnomeVFSFileType

typedef enum {
	GNOME_VFS_FILE_TYPE_UNKNOWN,
	GNOME_VFS_FILE_TYPE_REGULAR,
	GNOME_VFS_FILE_TYPE_DIRECTORY,
	GNOME_VFS_FILE_TYPE_FIFO,
	GNOME_VFS_FILE_TYPE_SOCKET,
	GNOME_VFS_FILE_TYPE_CHARACTER_DEVICE,
	GNOME_VFS_FILE_TYPE_BLOCK_DEVICE,
	GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK
} GnomeVFSFileType;

Maps to a stat mode, and identifies the kind of file represented by a GnomeVFSFileInfo struct, stored in the type field.

GNOME_VFS_FILE_TYPE_UNKNOWN The file type is unknown (none of the types below matches).
GNOME_VFS_FILE_TYPE_REGULAR The file is a regular file (stat: S_ISREG).
GNOME_VFS_FILE_TYPE_DIRECTORY The file is a directory (stat: S_ISDIR).
GNOME_VFS_FILE_TYPE_FIFO The file is a FIFO (stat: S_ISFIFO).
GNOME_VFS_FILE_TYPE_SOCKET The file is a socket (stat: S_ISSOCK).
GNOME_VFS_FILE_TYPE_CHARACTER_DEVICE The file is a character device (stat: S_ISCHR).
GNOME_VFS_FILE_TYPE_BLOCK_DEVICE The file is a block device (stat: S_ISBLK).
GNOME_VFS_FILE_TYPE_SYMBOLIC_LINK The file is a symbolic link (stat: S_ISLNK).

enum GnomeVFSFileInfoFields

typedef enum {
	GNOME_VFS_FILE_INFO_FIELDS_NONE = 0,
	GNOME_VFS_FILE_INFO_FIELDS_TYPE = 1 << 0,
	GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS = 1 << 1,
	GNOME_VFS_FILE_INFO_FIELDS_FLAGS = 1 << 2,
	GNOME_VFS_FILE_INFO_FIELDS_DEVICE = 1 << 3,
	GNOME_VFS_FILE_INFO_FIELDS_INODE = 1 << 4,
	GNOME_VFS_FILE_INFO_FIELDS_LINK_COUNT = 1 << 5,
	GNOME_VFS_FILE_INFO_FIELDS_SIZE = 1 << 6,
	GNOME_VFS_FILE_INFO_FIELDS_BLOCK_COUNT = 1 << 7,
	GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE = 1 << 8,
	GNOME_VFS_FILE_INFO_FIELDS_ATIME = 1 << 9,
	GNOME_VFS_FILE_INFO_FIELDS_MTIME = 1 << 10,
	GNOME_VFS_FILE_INFO_FIELDS_CTIME = 1 << 11,
	GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME = 1 << 12,
	GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE = 1 << 13,
	GNOME_VFS_FILE_INFO_FIELDS_ACCESS = 1 << 14,
	GNOME_VFS_FILE_INFO_FIELDS_IDS = 1 << 15,
	GNOME_VFS_FILE_INFO_FIELDS_ACL = 1 << 16,
	GNOME_VFS_FILE_INFO_FIELDS_SELINUX_CONTEXT = 1 << 17
} GnomeVFSFileInfoFields;

Flags indicating what fields in a GnomeVFSFileInfo struct are valid. Name is always assumed valid (how else would you have gotten a FileInfo struct otherwise?)

GNOME_VFS_FILE_INFO_FIELDS_NONE No fields are valid
GNOME_VFS_FILE_INFO_FIELDS_TYPE Type field is valid
GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS Permissions field is valid
GNOME_VFS_FILE_INFO_FIELDS_FLAGS Flags field is valid
GNOME_VFS_FILE_INFO_FIELDS_DEVICE Device field is valid
GNOME_VFS_FILE_INFO_FIELDS_INODE Inode field is valid
GNOME_VFS_FILE_INFO_FIELDS_LINK_COUNT Link count field is valid
GNOME_VFS_FILE_INFO_FIELDS_SIZE Size field is valid
GNOME_VFS_FILE_INFO_FIELDS_BLOCK_COUNT Block count field is valid
GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE I/O Block Size field is valid
GNOME_VFS_FILE_INFO_FIELDS_ATIME Access time field is valid
GNOME_VFS_FILE_INFO_FIELDS_MTIME Modification time field is valid
GNOME_VFS_FILE_INFO_FIELDS_CTIME Creating time field is valid
GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME Symlink name field is valid
GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE Mime type field is valid
GNOME_VFS_FILE_INFO_FIELDS_ACCESS Access bits of the permissions bitfield are valid
GNOME_VFS_FILE_INFO_FIELDS_IDS UID and GID information are valid
GNOME_VFS_FILE_INFO_FIELDS_ACL ACL field is valid
GNOME_VFS_FILE_INFO_FIELDS_SELINUX_CONTEXT SELinux Security context is valid

enum GnomeVFSFilePermissions

typedef enum {
	GNOME_VFS_PERM_SUID = S_ISUID,
	GNOME_VFS_PERM_SGID = S_ISGID,	
	GNOME_VFS_PERM_STICKY = 01000,	/* S_ISVTX not defined on all systems */
	GNOME_VFS_PERM_USER_READ = S_IRUSR,
	GNOME_VFS_PERM_USER_WRITE = S_IWUSR,
	GNOME_VFS_PERM_USER_EXEC = S_IXUSR,
	GNOME_VFS_PERM_USER_ALL = S_IRUSR | S_IWUSR | S_IXUSR,
	GNOME_VFS_PERM_GROUP_READ = S_IRGRP,
	GNOME_VFS_PERM_GROUP_WRITE = S_IWGRP,
	GNOME_VFS_PERM_GROUP_EXEC = S_IXGRP,
	GNOME_VFS_PERM_GROUP_ALL = S_IRGRP | S_IWGRP | S_IXGRP,
	GNOME_VFS_PERM_OTHER_READ = S_IROTH,
	GNOME_VFS_PERM_OTHER_WRITE = S_IWOTH,
	GNOME_VFS_PERM_OTHER_EXEC = S_IXOTH,
	GNOME_VFS_PERM_OTHER_ALL = S_IROTH | S_IWOTH | S_IXOTH,
	GNOME_VFS_PERM_ACCESS_READABLE   = 1 << 16,
	GNOME_VFS_PERM_ACCESS_WRITABLE   = 1 << 17,
	GNOME_VFS_PERM_ACCESS_EXECUTABLE = 1 << 18
} GnomeVFSFilePermissions;

File permissions. Some of these fields correspond to traditional UNIX semantics, others provide more abstract concepts.

Note

Some network file systems don't support traditional UNIX semantics but still provide file access control. Thus, if you want to modify the permissions (i.e. do a chmod), you should rely on the traditional fields, but if you just want to determine whether a file or directory can be read from or written to, you should rely on the more abstract GNOME_VFS_PERM_ACCESS_* fields.

GNOME_VFS_PERM_SUID UID bit
GNOME_VFS_PERM_SGID GID bit
GNOME_VFS_PERM_STICKY Sticky bit.
GNOME_VFS_PERM_USER_READ Owner has read permission.
GNOME_VFS_PERM_USER_WRITE Owner has write permission.
GNOME_VFS_PERM_USER_EXEC Owner has execution permission.
GNOME_VFS_PERM_USER_ALL Owner has all permissions.
GNOME_VFS_PERM_GROUP_READ Group has read permission.
GNOME_VFS_PERM_GROUP_WRITE Group has write permission.
GNOME_VFS_PERM_GROUP_EXEC Group has execution permission.
GNOME_VFS_PERM_GROUP_ALL Group has all permissions.
GNOME_VFS_PERM_OTHER_READ Others have read permission.
GNOME_VFS_PERM_OTHER_WRITE Others have write permission.
GNOME_VFS_PERM_OTHER_EXEC Others have execution permission.
GNOME_VFS_PERM_OTHER_ALL Others have all permissions.
GNOME_VFS_PERM_ACCESS_READABLE This file is readable for the current client.
GNOME_VFS_PERM_ACCESS_WRITABLE This file is writable for the current client.
GNOME_VFS_PERM_ACCESS_EXECUTABLE This file is executable for the current client.

enum GnomeVFSFileInfoOptions

typedef enum {
	GNOME_VFS_FILE_INFO_DEFAULT = 0,
	GNOME_VFS_FILE_INFO_GET_MIME_TYPE = 1 << 0,
	GNOME_VFS_FILE_INFO_FORCE_FAST_MIME_TYPE = 1 << 1,
	GNOME_VFS_FILE_INFO_FORCE_SLOW_MIME_TYPE = 1 << 2,
	GNOME_VFS_FILE_INFO_FOLLOW_LINKS = 1 << 3,
	GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS = 1 << 4,
	GNOME_VFS_FILE_INFO_NAME_ONLY = 1 << 5,
	GNOME_VFS_FILE_INFO_GET_ACL = 1 << 6,
	GNOME_VFS_FILE_INFO_GET_SELINUX_CONTEXT = 1 << 7
} GnomeVFSFileInfoOptions;

Packed boolean bitfield representing options that can be passed into a gnome_vfs_get_file_info() call (or other related calls that return file info) and affect the operation of get_file_info.

GNOME_VFS_FILE_INFO_DEFAULT default flags
GNOME_VFS_FILE_INFO_GET_MIME_TYPE detect the MIME type
GNOME_VFS_FILE_INFO_FORCE_FAST_MIME_TYPE only use fast MIME type detection (extensions)
GNOME_VFS_FILE_INFO_FORCE_SLOW_MIME_TYPE force slow MIME type detection where available (sniffing, algorithmic detection, etc)
GNOME_VFS_FILE_INFO_FOLLOW_LINKS automatically follow symbolic links and retrieve the properties of their target (recommended)
GNOME_VFS_FILE_INFO_GET_ACCESS_RIGHTS tries to get data similar to what would return access(2) on a local file system (ie is the file readable, writable and/or executable). Can be really slow on remote file systems
GNOME_VFS_FILE_INFO_NAME_ONLY When reading a directory, only get the filename (if doing so is faster). Useful to e.g. count the number of files.
GNOME_VFS_FILE_INFO_GET_ACL get ACLs for the file
GNOME_VFS_FILE_INFO_GET_SELINUX_CONTEXT

enum GnomeVFSSetFileInfoMask

typedef enum {
	GNOME_VFS_SET_FILE_INFO_NONE = 0,
	GNOME_VFS_SET_FILE_INFO_NAME = 1 << 0,
	GNOME_VFS_SET_FILE_INFO_PERMISSIONS = 1 << 1,
	GNOME_VFS_SET_FILE_INFO_OWNER = 1 << 2,
	GNOME_VFS_SET_FILE_INFO_TIME = 1 << 3,
	GNOME_VFS_SET_FILE_INFO_ACL = 1 << 4,
	GNOME_VFS_SET_FILE_INFO_SELINUX_CONTEXT = 1 << 5,
	GNOME_VFS_SET_FILE_INFO_SYMLINK_NAME = 1 << 6
} GnomeVFSSetFileInfoMask;

Packed boolean bitfield representing the aspects of the file to be changed in a gnome_vfs_set_file_info() call.

GNOME_VFS_SET_FILE_INFO_NONE don't set any file info fields
GNOME_VFS_SET_FILE_INFO_NAME change the name
GNOME_VFS_SET_FILE_INFO_PERMISSIONS change the permissions
GNOME_VFS_SET_FILE_INFO_OWNER change the file's owner
GNOME_VFS_SET_FILE_INFO_TIME change the file's time stamp(s)
GNOME_VFS_SET_FILE_INFO_ACL change the file's ACLs
GNOME_VFS_SET_FILE_INFO_SELINUX_CONTEXT
GNOME_VFS_SET_FILE_INFO_SYMLINK_NAME change the file's symlink name

GnomeVFSGetFileInfoResult

typedef struct {
	GnomeVFSURI *uri;
	GnomeVFSResult result;
	GnomeVFSFileInfo *file_info;
} GnomeVFSGetFileInfoResult;

This data structure encapsulates the details of an individual file info request that was part of a mass file info request launched through gnome_vfs_async_get_file_info(), and is passed to a GnomeVFSAsyncGetFileInfoCallback.

GnomeVFSURI *uri; The GnomeVFSURI the file info was requested for.
GnomeVFSResult result; The GnomeVFSResult of the file info request.
GnomeVFSFileInfo *file_info; The GnomeVFSFileInfo that was retrieved.

GnomeVFSInodeNumber

typedef GnomeVFSFileSize GnomeVFSInodeNumber;

Represents the i-node of a file, this is a low level data structure that the operating system uses to hold information about a file.


GnomeVFSFileInfo

typedef struct {
	char *name;

	GnomeVFSFileInfoFields valid_fields;
	GnomeVFSFileType type;
	GnomeVFSFilePermissions permissions;

	GnomeVFSFileFlags flags;

	dev_t device;
	GnomeVFSInodeNumber inode;

	guint link_count;

	guint uid;
	guint gid;

	GnomeVFSFileSize size;

	GnomeVFSFileSize block_count;

	guint io_block_size;

	time_t atime;
	time_t mtime;
	time_t ctime;

	char *symlink_name;

	char *mime_type;

	guint refcount;

	/* File ACLs */
	GnomeVFSACL *acl;

	/* SELinux security context. -- ascii string, raw format. */
	char* selinux_context;
} GnomeVFSFileInfo;

Note

When doing massive I/O, it is suggested to adhere io_block_size if applicable. For network file systems, this may be set to very big values allowing parallelization.

The GnomeVFSFileInfo structure contains information about a file.

char *name; A char * specifying the base name of the file (without any path string).
GnomeVFSFileInfoFields valid_fields; GnomeVFSFileInfoFields specifying which fields of GnomeVFSFileInfo are valid. Note that name is always assumed to be valid, i.e. clients may assume that it is not NULL.
GnomeVFSFileType type; The GnomeVFSFileType of the file (i.e. regular, directory, block device, ...) if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_TYPE.
GnomeVFSFilePermissions permissions; The GnomeVFSFilePermissions corresponding to the UNIX-like permissions of the file, if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS, and the GnomeVFSFilePermissions corresponding to abstract access concepts (GNOME_VFS_PERM_ACCESS_READABLE, GNOME_VFS_PERM_ACCESS_WRITABLE, and GNOME_VFS_PERM_ACCESS_EXECUTABLE) if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_PERMISSIONS.
GnomeVFSFileFlags flags; GnomeVFSFileFlags providing additional information about the file, for instance whether it is local or a symbolic link, if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_FLAGS.
dev_t device; Identifies the device the file is located on, if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_DEVICE.
GnomeVFSInodeNumber inode; Identifies the inode corresponding to the file, if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_INODE.
guint link_count; Counts the number of hard links to the file, if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_LINK_COUNT.
guint uid; The user owning the file, if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_IDS.
guint gid; The user owning the file, if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_IDS.
GnomeVFSFileSize size; The size of the file in bytes (a GnomeVFSFileSize), if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_SIZE.
GnomeVFSFileSize block_count; The size of the file in file system blocks (a GnomeVFSFileSize), if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_BLOCK_COUNT.
guint io_block_size; The optimal buffer size for reading/writing the file, if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_IO_BLOCK_SIZE.
time_t atime; The time of the last file access, if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_ATIME.
time_t mtime; The time of the last file contents modification, if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_MTIME.
time_t ctime; The time of the last inode change, if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_CTIME.
char *symlink_name; This is the name of the file this link points to, type is GNOME_VFS_FILE_FLAGS_SYMLINK, and valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_SYMLINK_NAME.
char *mime_type; This is a char * identifying the type of the file, if valid_fields provides GNOME_VFS_FILE_INFO_FIELDS_MIME_TYPE.
guint refcount; The reference count of this file info, which is one by default, and that can be increased using gnome_vfs_file_info_ref() and decreased using gnome_vfs_file_info_unref(). When it drops to zero, the file info is freed and its memory is invalid. Make sure to keep your own reference to a file info if you received it from GnomeVFS, i.e. if you didn't call gnome_vfs_file_info_new() yourself.
GnomeVFSACL *acl;
char *selinux_context;

GNOME_VFS_FILE_INFO_SYMLINK()

#define     GNOME_VFS_FILE_INFO_SYMLINK(info)

Determines whether a file is a symbolic link given info.

info : GnomeVFSFileInfo struct

GNOME_VFS_FILE_INFO_SET_SYMLINK()

#define     GNOME_VFS_FILE_INFO_SET_SYMLINK(info, value)

Set the symbolic link field in info to value.

info : GnomeVFSFileInfo struct
value : if TRUE, info is set to indicate the file is a symbolic link

GNOME_VFS_FILE_INFO_LOCAL()

#define     GNOME_VFS_FILE_INFO_LOCAL(info)

Determines whether a file is local given info.

info : GnomeVFSFileInfo struct

GNOME_VFS_FILE_INFO_SET_LOCAL()

#define     GNOME_VFS_FILE_INFO_SET_LOCAL(info, value)

Set the "local file" field in info to value.

info : GnomeVFSFileInfo struct
value : if TRUE, info is set to indicate the file is local

GNOME_VFS_FILE_INFO_SUID()

#define     GNOME_VFS_FILE_INFO_SUID(info)

Determines whether a file belongs to the super user.

info : GnomeVFSFileInfo struct

GNOME_VFS_FILE_INFO_SGID()

#define     GNOME_VFS_FILE_INFO_SGID(info)

Determines whether a file belongs to the super user's group.

info : GnomeVFSFileInfo struct

GNOME_VFS_FILE_INFO_STICKY()

#define     GNOME_VFS_FILE_INFO_STICKY(info)

Determines whether a file has the sticky bit set, given info

info : GnomeVFSFileInfo struct

GNOME_VFS_FILE_INFO_SET_SUID()

#define     GNOME_VFS_FILE_INFO_SET_SUID(info, value)

Set the SUID field in info to value.

info : GnomeVFSFileInfo struct
value : if TRUE, info is set to indicate the file belongs to the super user

GNOME_VFS_FILE_INFO_SET_SGID()

#define     GNOME_VFS_FILE_INFO_SET_SGID(info, value)

Set the SGID field in info to value.

info : GnomeVFSFileInfo struct
value : if TRUE, info is set to indicate the file belongs to the super user's group

GNOME_VFS_FILE_INFO_SET_STICKY()

#define     GNOME_VFS_FILE_INFO_SET_STICKY(info, value)

Set the sticky bit in info to value.

info : GnomeVFSFileInfo struct
value : if TRUE, info is set to indicate the file has the sticky bit set

gnome_vfs_file_info_new ()

GnomeVFSFileInfo* gnome_vfs_file_info_new   (void);

Allocate and initialize a new GnomeVFSFileInfo struct.

Returns : a pointer to the newly allocated file information struct.

gnome_vfs_file_info_unref ()

void        gnome_vfs_file_info_unref       (GnomeVFSFileInfo *info);

Decreases the refcount of info by 1. Frees the struct info if refcount becomes 0.

info : pointer to a file information struct.

gnome_vfs_file_info_ref ()

void        gnome_vfs_file_info_ref         (GnomeVFSFileInfo *info);

Increment refcount of info by 1.

info : pointer to a file information struct.

gnome_vfs_file_info_clear ()

void        gnome_vfs_file_info_clear       (GnomeVFSFileInfo *info);

Clear info so that it's ready to accept new data. This is supposed to be used when info already contains meaningful information which we want to replace.

info : pointer to a file information struct.

gnome_vfs_file_info_get_mime_type ()

const char* gnome_vfs_file_info_get_mime_type
                                            (GnomeVFSFileInfo *info);

Retrieve MIME type from info. There is no need to free the return value.

info : a pointer to a file information struct.
Returns : a pointer to a string representing the MIME type.

gnome_vfs_file_info_copy ()

void        gnome_vfs_file_info_copy        (GnomeVFSFileInfo *dest,
                                             const GnomeVFSFileInfo *src);

Copy information from src into dest.

dest : pointer to a struct to copy src's information into.
src : pointer to the information to be copied into dest.

gnome_vfs_file_info_dup ()

GnomeVFSFileInfo* gnome_vfs_file_info_dup   (const GnomeVFSFileInfo *orig);

Duplicates orig and returns it.

orig : pointer to a file information structure to duplicate.
Returns : a new file information struct that duplicates the information in orig.

gnome_vfs_file_info_matches ()

gboolean    gnome_vfs_file_info_matches     (const GnomeVFSFileInfo *a,
                                             const GnomeVFSFileInfo *b);

Compare the two file info structs, return TRUE if they match exactly the same file data.

a : first GnomeVFSFileInfo struct to compare.
b : second GnomeVFSFileInfo struct to compare.
Returns : TRUE if the two GnomeVFSFileInfos match, otherwise return FALSE.

gnome_vfs_file_info_list_ref ()

GList*      gnome_vfs_file_info_list_ref    (GList *list);

Increments the refcount of the items in list by one.

list : list of GnomeVFSFileInfo elements.
Returns : list.

gnome_vfs_file_info_list_unref ()

GList*      gnome_vfs_file_info_list_unref  (GList *list);

Decrements the refcount of the items in list by one. Note that the list is *not freed* even if each member of the list is freed.

list : list of GnomeVFSFileInfo elements.
Returns : list.

gnome_vfs_file_info_list_copy ()

GList*      gnome_vfs_file_info_list_copy   (GList *list);

Creates a duplicate of list, and references each member of that list.

list : list of GnomeVFSFileInfo elements.
Returns : a newly referenced duplicate of list.

gnome_vfs_file_info_list_free ()

void        gnome_vfs_file_info_list_free   (GList *list);

Decrements the refcount of each member of list by one, and frees the list itself.

list : list of GnomeVFSFileInfo elements.

gnome_vfs_get_file_info_result_dup ()

GnomeVFSGetFileInfoResult* gnome_vfs_get_file_info_result_dup
                                            (GnomeVFSGetFileInfoResult *result);

Duplicate result.

Note: The internal uri and fileinfo objects are not duplicated but their refcount is incremented by 1.

result : a GnomeVFSGetFileInfoResult.
Returns : a duplicated version of result.

Since 2.12


gnome_vfs_get_file_info_result_free ()

void        gnome_vfs_get_file_info_result_free
                                            (GnomeVFSGetFileInfoResult *result);

Unrefs the internal uri and fileinfo objects and frees the memory allocated for result.

Since 2.12