View Source File.Stat (Elixir v1.16.0)

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.

Summary

Functions

Converts a :file_info record into a File.Stat.

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

Types

@type 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()
}

Functions

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

Converts a :file_info record into a File.Stat.

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

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