Functionality for manipulating basic metadata for files.
FileInfo implements methods for getting information that all files should contain, and allows for
manipulation of extended attributes.
See GFileAttribute for more information on how GIO handles file attributes.
To obtain a FileInfo for a File, use
query_info (or its async variant). To obtain a
FileInfo for a file input or output stream, use query_info
or query_info (or their async variants).
To change the actual attributes of a file, you should then set the attribute in the FileInfo and call
set_attributes_from_info or
set_attributes_async on a GFile.
However, not all attributes can be changed in the file. For instance, the actual size of a file cannot be changed via
set_size. You may call
query_settable_attributes and
query_writable_namespaces to discover the settable
attributes of a particular file at runtime.
The direct accessors, such as get_name, are slightly more optimized than the
generic attribute accessors, such as get_attribute_byte_string
.This optimization will matter only if calling the API in a tight loop.
FileAttributeMatcher allows for searching through a
FileInfo for attributes.
Example: List all files in a directory, sync:
private void list_children (File file, string space = "", Cancellable? cancellable = null) throws Error {
FileEnumerator enumerator = file.enumerate_children (
"standard::*",
FileQueryInfoFlags.NOFOLLOW_SYMLINKS,
cancellable);
FileInfo info = null;
while (cancellable.is_cancelled () == false && ((info = enumerator.next_file (cancellable)) != null)) {
if (info.get_file_type () == FileType.DIRECTORY) {
File subdir = file.resolve_relative_path (info.get_name ());
list_children (subdir, space + " ", cancellable);
} else {
print ("%s%s\n", space, info.get_name ());
print ("%s %s\n", space, info.get_file_type ().to_string ());
print ("%s %s\n", space, info.get_is_symlink ().to_string ());
print ("%s %s\n", space, info.get_is_hidden ().to_string ());
print ("%s %s\n", space, info.get_is_backup ().to_string ());
print ("%s %"+int64.FORMAT+"\n", space, info.get_size ());
}
}
if (cancellable.is_cancelled ()) {
throw new IOError.CANCELLED ("Operation was cancelled");
}
}
public static int main (string[] args) {
if (args.length != 2) {
print ("%s [DIRECTORY]\n", args[0]);
return 0;
}
File file = File.new_for_commandline_arg (args[1]);
try {
list_children (file, "", new Cancellable ());
} catch (Error e) {
print ("Error: %s\n", e.message);
return 0;
}
return 0;
}
valac --pkg gio-2.0 GLib.File.enumerate_children.vala
Example: List all files in a directory, async:
public static int main (string[] args) {
File file = File.new_for_path (".");
MainLoop loop = new MainLoop ();
file.enumerate_children_async.begin ("standard::*", FileQueryInfoFlags.NOFOLLOW_SYMLINKS, Priority.DEFAULT, null, (obj, res) => {
try {
FileEnumerator enumerator = file.enumerate_children_async.end (res);
FileInfo info;
while ((info = enumerator.next_file (null)) != null) {
print ("%s\n", info.get_name ());
print ("\t%s\n", info.get_file_type ().to_string ());
print ("\t%s\n", info.get_is_symlink ().to_string ());
print ("\t%s\n", info.get_is_hidden ().to_string ());
print ("\t%s\n", info.get_is_backup ().to_string ());
print ("\t%"+int64.FORMAT+"\n", info.get_size ());
}
} catch (Error e) {
print ("Error: %s\n", e.message);
}
loop.quit ();
});
loop.run ();
return 0;
}
valac --pkg gio-2.0 GLib.File.enumerate_children_async.vala
- public void clear_status ()
Clears the status information from this
.
- public void copy_into (FileInfo dest_info)
First clears all of the GFileAttribute of dest_info
, and then copies all of the file attributes from this to dest_info
.
- public FileInfo dup ()
Duplicates a file info structure.
- public DateTime? get_access_date_time ()
Gets the access time of the current this
and returns it as a DateTime.
- public string? get_attribute_as_string (string attribute)
Gets the value of a attribute, formatted as a string.
- public bool get_attribute_boolean (string attribute)
Gets the value of a boolean attribute.
- public unowned string? get_attribute_byte_string (string attribute)
Gets the value of a byte string attribute.
- public bool get_attribute_data (string attribute, out FileAttributeType type, out void* value_pp, out FileAttributeStatus status)
Gets the attribute type, value and status for an attribute key.
- public int32 get_attribute_int32 (string attribute)
Gets a signed 32-bit integer contained within the attribute.
- public int64 get_attribute_int64 (string attribute)
Gets a signed 64-bit integer contained within the attribute.
- public unowned Object? get_attribute_object (string attribute)
Gets the value of a Object attribute.
- public FileAttributeStatus get_attribute_status (string attribute)
Gets the attribute status for an attribute key.
- public unowned string? get_attribute_string (string attribute)
Gets the value of a string attribute.
- public unowned string[]? get_attribute_stringv (string attribute)
Gets the value of a stringv attribute.
- public FileAttributeType get_attribute_type (string attribute)
Gets the attribute type for an attribute key.
- public uint32 get_attribute_uint32 (string attribute)
Gets an unsigned 32-bit integer contained within the attribute.
- public uint64 get_attribute_uint64 (string attribute)
Gets a unsigned 64-bit integer contained within the attribute.
- public unowned string? get_content_type ()
Gets the file's content type.
- public DateTime? get_creation_date_time ()
Gets the creation time of the current this
and returns it as a DateTime.
- public DateTime? get_deletion_date ()
Returns the DateTime representing the
deletion date of the file, as available in G_FILE_ATTRIBUTE_TRASH_DELETION_DATE.
- public unowned string get_display_name ()
Gets a display name for a file.
- public unowned string get_edit_name ()
Gets the edit name for a file.
- public unowned string? get_etag ()
Gets the entity tag for a given FileInfo
.
- public FileType get_file_type ()
Gets a file's type (whether it is a regular file, symlink, etc).
- public unowned Icon? get_icon ()
Gets the icon for a file.
- public bool get_is_backup ()
Checks if a file is a backup file.
- public bool get_is_hidden ()
Checks if a file is hidden.
- public bool get_is_symlink ()
Checks if a file is a symlink.
- public DateTime? get_modification_date_time ()
Gets the modification time of the current
this and returns it as a DateTime.
- public TimeVal get_modification_time ()
Gets the modification time of the current
this and sets it in result
.
- public unowned string get_name ()
Gets the name for a file.
- public int64 get_size ()
Gets the file's size (in bytes).
- public int32 get_sort_order ()
Gets the value of the sort_order attribute from the
FileInfo.
- public unowned Icon? get_symbolic_icon ()
Gets the symbolic icon for a file.
- public unowned string? get_symlink_target ()
Gets the symlink target for a given FileInfo
.
- public bool has_attribute (string attribute)
Checks if a file info structure has an attribute named attribute
.
- public bool has_namespace (string name_space)
Checks if a file info structure has an attribute in the specified
name_space
.
- public string[]? list_attributes (string? name_space)
Lists the file info structure's attributes.
- public void remove_attribute (string attribute)
Removes all cases of attribute
from
this if it exists.
- public void set_access_date_time (DateTime atime)
Sets the g_file_attribute_time_access
and g_file_attribute_time_access_usec attributes in the file info to the given date/time
value.
- public void set_attribute (string attribute, FileAttributeType type, void* value_p)
Sets the attribute
to contain the given value, if
possible.
- public void set_attribute_boolean (string attribute, bool attr_value)
Sets the attribute
to contain the given attr_value
, if possible.
- public void set_attribute_byte_string (string attribute, string attr_value)
Sets the attribute
to contain the given attr_value
, if possible.
- public void set_attribute_int32 (string attribute, int32 attr_value)
Sets the attribute
to contain the given attr_value
, if possible.
- public void set_attribute_int64 (string attribute, int64 attr_value)
Sets the attribute
to contain the given attr_value
, if possible.
- public void set_attribute_mask (FileAttributeMatcher mask)
Sets mask
on this to
match specific attribute types.
- public void set_attribute_object (string attribute, Object attr_value)
Sets the attribute
to contain the given attr_value
, if possible.
- public bool set_attribute_status (string attribute, FileAttributeStatus status)
Sets the attribute status for an attribute key.
- public void set_attribute_string (string attribute, string attr_value)
Sets the attribute
to contain the given attr_value
, if possible.
- public void set_attribute_stringv (string attribute, string[] attr_value)
Sets the attribute
to contain the given attr_value
, if possible.
- public void set_attribute_uint32 (string attribute, uint32 attr_value)
Sets the attribute
to contain the given attr_value
, if possible.
- public void set_attribute_uint64 (string attribute, uint64 attr_value)
Sets the attribute
to contain the given attr_value
, if possible.
- public void set_content_type (string content_type)
Sets the content type attribute for a given
FileInfo.
- public void set_creation_date_time (DateTime creation_time)
Sets the g_file_attribute_time_created
and g_file_attribute_time_created_usec attributes in the file info to the given date/time
value.
- public void set_display_name (string display_name)
Sets the display name for the current FileInfo
.
- public void set_edit_name (string edit_name)
Sets the edit name for the current file.
- public void set_file_type (FileType type)
Sets the file type in a FileInfo to
type
.
- public void set_icon (Icon icon)
Sets the icon for a given FileInfo.
- public void set_is_hidden (bool is_hidden)
Sets the "is_hidden" attribute in a FileInfo
according to is_hidden
.
- public void set_is_symlink (bool is_symlink)
Sets the "is_symlink" attribute in a FileInfo
according to is_symlink
.
- public void set_modification_date_time (DateTime mtime)
Sets the g_file_attribute_time_modified
and g_file_attribute_time_modified_usec attributes in the file info to the given date/time
value.
- public void set_modification_time (TimeVal mtime)
Sets the g_file_attribute_time_modified
and g_file_attribute_time_modified_usec attributes in the file info to the given time value.
- public void set_name (string name)
Sets the name attribute for the current FileInfo
.
- public void set_size (int64 size)
Sets the g_file_attribute_standard_size
attribute in the file info to the given size.
- public void set_sort_order (int32 sort_order)
Sets the sort order attribute in the file info structure.
- public void set_symbolic_icon (Icon icon)
Sets the symbolic icon for a given FileInfo
.
- public void set_symlink_target (string symlink_target)
Sets the
g_file_attribute_standard_symlink_target attribute in the file info to the given symlink target.
- public void unset_attribute_mask ()