Migrating to GIO Migrating from POSIX to GIO Comparison of POSIX and GIO concepts POSIXGIOchar *pathGFile *filestruct stat *bufGFileInfo *infostruct statvfs *bufGFileInfo *infoint fdGInputStream *inGOutputStream *outDIR *GFileEnumerator *enumfstab entryGUnixMountPoint *mount_pointmtab entryGUnixMountEntry *mount_entry
Migrating from GnomeVFS to GIO Comparison of GnomeVFS and GIO concepts GnomeVFSGIOGnomeVFSURIGFileGnomeVFSFileInfoGFileInfoGnomeVFSResultGError, with G_IO_ERROR valuesGnomeVFSHandle & GnomeVFSAsyncHandleGInputStream or GOutputStreamGnomeVFSDirectoryHandleGFileEnumeratormime typecontent typeGnomeVFSMonitorGFileMonitorGnomeVFSVolumeMonitorGVolumeMonitorGnomeVFSVolumeGMountGnomeVFSDriveGVolume-GDriveGnomeVFSContextGCancellablegnome_vfs_async_cancelg_cancellable_cancel
Trash handling The handling of trashed files has been changed in GIO, compared to gnome-vfs. gnome-vfs has a home-grown trash implementation that predates the freedesktop.org Desktop Trash Can specification that is implemented in GIO. Both systems support a the trash:// scheme to access a merged view of all trashed files, but the location for storing trashed files has changed from $HOME/.Trash to $HOME/.local/share/Trash (or more correctly $XDG_DATA_HOME/Trash), which means that there is a need for migrating files that have been trashed by gnome-vfs to the new location. GIO exposes some useful metadata about trashed files. There are trash::orig-path and tash::deletion-date attributes. The standard::icon attribute of the trash:// itself provides a suitable icon for displaying the trash can on the desktop. If you are using this icon, make sure to monitor this attribute for changes, since the icon may be updated to reflect that state of the trash can. Moving a file to the trash is much simpler with GIO. Instead of using gnome_vfs_find_directory() with %GNOME_VFS_DIRECTORY_KIND_TRASH to find out where to move the trashed file, just use the g_file_trash() function.
Operations on multiple files gnome-vfs has the dreaded gnome_vfs_xfer_uri_list() function which has tons of options and offers the equivalent of cp, mv, ln, mkdir and rm at the same time. GIO offers a much simpler I/O scheduler functionality instead, that lets you schedule a function to be called in a separate thread. See g_io_scheduler_push_job().