Stores information about a file system object referenced by a [iface@Gio.
File].
Functionality for manipulating basic metadata for files. `GFileInfo` implements methods for getting information that all files should contain,
and allows for manipulation of extended attributes.
See [file-attributes.html](file attributes) for more information on how GIO handles file attributes.
To obtain a `GFileInfo` for a [iface@Gio.File], use [method@Gio.File.query_info] (or its async variant). To obtain a `GFileInfo` for a file
input or output stream, use [method@Gio.FileInputStream.query_info] or [method@Gio.FileOutputStream.query_info] (or their async variants).
To change the actual attributes of a file, you should then set the attribute in the `GFileInfo` and call [
method@Gio.File.set_attributes_from_info] or [method@Gio.File.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 [
method@Gio.FileInfo.set_size]. You may call [method@Gio.File.query_settable_attributes] and [method@Gio.File.query_writable_namespaces] to
discover the settable attributes of a particular file at runtime.
The direct accessors, such as [method@Gio.FileInfo.get_name], are slightly more optimized than the generic attribute accessors, such as [
method@Gio.FileInfo.get_attribute_byte_string].This optimization will matter only if calling the API in a tight loop.
It is an error to call these accessors without specifying their required file attributes when creating the `GFileInfo`. Use [
method@Gio.FileInfo.has_attribute] or [method@Gio.FileInfo.list_attributes] to check what attributes are specified for a `GFileInfo`.
[struct@Gio.FileAttributeMatcher] allows for searching through a `GFileInfo` 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 an 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 unowned string? get_attribute_file_path (string attribute)
Gets the value of a byte string attribute as a file path.
- 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](iface.
- 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_file_path (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 ()