# abstract struct File::Info

- File::Info
- Struct
- Value
- Object

##
Overview

A `File::Info` contains metadata regarding a file. It is returned by `File.info`, `File#info` and `File.info?`.

##
Direct Known Subclasses

- Crystal::System::FileInfo

##
Defined in:

##
Constructors

- .new

##
Instance Method Summary

- #directory?

  Returns true if this `Info` represents a directory.

- #file?

  Returns true if this `Info` represents a standard file.

- #flags : Flags

  The special flags this file has set.

- #group : UInt32

  The group ID that the file belongs to.

- #modification_time : Time

  The last time this file was modified.

- #owner : UInt32

  The user ID of the file's owner.

- #permissions : Permissions

  The permissions of the file.

- #same_file?(other : File::Info) : Bool

  Returns true if this `Info` and other are of the same file.

- #size : UInt64

  Size of the file, in bytes.

- #symlink?

  Returns true if this `Info` represents a symbolic link to another file.

- #type : Type

  The type of the file.

### Instance methods inherited from struct `Struct`

==(other) : Bool ==, hash(hasher) hash, inspect(io : IO) : Nil inspect, pretty_print(pp) : Nil pretty_print, to_s(io : IO) : Nil to_s

### Instance methods inherited from struct `Value`

==(other : JSON::Any)
==(other : YAML::Any)
==(other) ==, dup dup

### Instance methods inherited from class `Object`

!=(other) !=, !~(other) !~, ==(other) ==, ===(other : JSON::Any)
===(other : YAML::Any)
===(other) ===, =~(other) =~, __crystal_pseudo_! : Bool __crystal_pseudo_!, __crystal_pseudo_as(type : Class) __crystal_pseudo_as, __crystal_pseudo_as?(type : Class) __crystal_pseudo_as?, __crystal_pseudo_is_a?(type : Class) : Bool __crystal_pseudo_is_a?, __crystal_pseudo_nil? : Bool __crystal_pseudo_nil?, __crystal_pseudo_responds_to?(name : Symbol) : Bool __crystal_pseudo_responds_to?, class class, dup dup, hash(hasher)
hash hash, inspect : String
inspect(io : IO) : Nil inspect, itself itself, not_nil! not_nil!, pretty_inspect(width = 79, newline = "\n", indent = 0) : String pretty_inspect, pretty_print(pp : PrettyPrint) : Nil pretty_print, tap(&) tap, to_json(io : IO)
to_json to_json, to_pretty_json(indent : String = " ")
to_pretty_json(io : IO, indent : String = " ") to_pretty_json, to_s : String
to_s(io : IO) : Nil to_s, to_yaml(io : IO)
to_yaml to_yaml, try(&) try, unsafe_as(type : T.class) forall T unsafe_as

### Class methods inherited from class `Object`

from_json(string_or_io, root : String)
from_json(string_or_io) from_json, from_yaml(string_or_io : String | IO) from_yaml

##
Constructor Detail

def self.new #

##
Instance Method Detail

def directory? #

Returns true if this `Info` represents a directory. Shortcut for `type.directory?`.

def file? #

Returns true if this `Info` represents a standard file. Shortcut for `type.file?`.

abstract def flags : Flags #

The special flags this file has set.

abstract def group : UInt32 #

The group ID that the file belongs to.

abstract def modification_time : Time #

The last time this file was modified.

abstract def owner : UInt32 #

The user ID of the file's owner.

abstract def permissions : Permissions #

The permissions of the file.

abstract def same_file?(other : File::Info) : Bool #

Returns true if this `Info` and other are of the same file.

On unix, this compares device and inode fields, and will compare equal for hard linked files.

abstract def size : UInt64 #

Size of the file, in bytes.

def symlink? #

Returns true if this `Info` represents a symbolic link to another file. Shortcut for `type.symlink?`.

abstract def type : Type #

The type of the file.