# Elixir v1.10.3 File.Stat View Source

A struct that holds file information.

In Erlang, this struct is represented by a `:file_info` record. Therefore this module also provides functions for converting between the Erlang record and the Elixir struct.

Its fields are:

- `size` - size of file in bytes.

- `type` - `:device | :directory | :regular | :other | :symlink`; the type of the file.

- `access` - `:read | :write | :read_write | :none`; the current system access to the file.

- `atime` - the last time the file was read.

- `mtime` - the last time the file was written.

- `ctime` - the interpretation of this time field depends on the operating system. On Unix-like operating systems, it is the last time the file or the inode was changed. In Windows, it is the time of creation.

- `mode` - the file permissions.

- `links` - the number of links to this file. This is always 1 for file systems which have no concept of links.

- `major_device` - identifies the file system where the file is located. In Windows, the number indicates a drive as follows: 0 means A:, 1 means B:, and so on.

- `minor_device` - only valid for character devices on Unix-like systems. In all other cases, this field is zero.

- `inode` - gives the inode number. On non-Unix-like file systems, this field will be zero.

- `uid` - indicates the owner of the file. Will be zero for non-Unix-like file systems.

- `gid` - indicates the group that owns the file. Will be zero for non-Unix-like file systems.

The time type returned in `atime`, `mtime`, and `ctime` is dependent on the time type set in options. `{:time, type}` where type can be `:local`, `:universal`, or `:posix`. Default is `:universal`.

# Link to this section Summary

## Types

t()

## Functions

from_record(file_info)

Converts a `:file_info` record into a `File.Stat`.

to_record(stat)

Converts a `File.Stat` struct to a `:file_info` record.

# Link to this section Types

Link to this type

# t()

View Source

## Specs

    t() :: %File.Stat{
      access: :read | :write | :read_write | :none,
      atime: :calendar.datetime() | integer(),
      ctime: :calendar.datetime() | integer(),
      gid: non_neg_integer(),
      inode: non_neg_integer(),
      links: non_neg_integer(),
      major_device: non_neg_integer(),
      minor_device: non_neg_integer(),
      mode: non_neg_integer(),
      mtime: :calendar.datetime() | integer(),
      size: non_neg_integer(),
      type: :device | :directory | :regular | :other | :symlink,
      uid: non_neg_integer()
    }

# Link to this section Functions

Link to this function

# from_record(file_info)

View Source

## Specs

    from_record(:file.file_info()) :: t()

Converts a `:file_info` record into a `File.Stat`.

Link to this function

# to_record(stat)

View Source

## Specs

    to_record(t()) :: :file.file_info()

Converts a `File.Stat` struct to a `:file_info` record.