# class Chef::ReservedNames::Win32::File::Info

Objects of class Chef::ReservedNames::Win32::File::Stat encapsulate common status information for Chef::ReservedNames::Win32::File objects. The information is recorded at the moment the Chef::ReservedNames::Win32::File::Stat object is created; changes made to the file after that point will not be reflected.

### Public Class Methods

new(file_name) click to toggle source

msdn.microsoft.com/en-us/library/windows/desktop/aa363788(v=vs.85).aspx

    # File lib/chef/win32/file/info.rb, line 35
    def initialize(file_name)
      raise Errno::ENOENT, file_name unless ::File.exist?(file_name)
      @file_info = retrieve_file_info(file_name)
    end

### Public Instance Methods

atime()

::File::Stat compat

Alias for: last_access_time
creation_time() click to toggle source

    # File lib/chef/win32/file/info.rb, line 52
    def creation_time
      parse_time(@file_info[:ft_creation_time])
    end

Also aliased as: ctime
ctime()
Alias for: creation_time
index() click to toggle source

    # File lib/chef/win32/file/info.rb, line 44
    def index
      make_uint64(@file_info[:n_file_index_low], @file_info[:n_file_index_high])
    end

ino() click to toggle source

we’re faking it here, but this is in the spirit of ino in *nix

from MSDN:

“The identifier (low and high parts) and the volume serial number uniquely identify a file on a single computer. To determine whether two open handles represent the same file, combine the identifier and the volume serial number for each file and compare them.”“

    # File lib/chef/win32/file/info.rb, line 83
    def ino
      volume_serial_number + index
    end

last_access_time() click to toggle source

    # File lib/chef/win32/file/info.rb, line 48
    def last_access_time
      parse_time(@file_info[:ft_last_access_time])
    end

Also aliased as: atime
last_write_time() click to toggle source

    # File lib/chef/win32/file/info.rb, line 56
    def last_write_time
      parse_time(@file_info[:ft_last_write_time])
    end

Also aliased as: mtime
links() click to toggle source

    # File lib/chef/win32/file/info.rb, line 60
    def links
      @file_info[:n_number_of_links]
    end

mtime()
Alias for: last_write_time
parse_time(file_time_struct) click to toggle source

given a +Chef::ReservedNames::Win32::API::File::FILETIME+ structure convert into a Ruby `Time` object.

    # File lib/chef/win32/file/info.rb, line 91
    def parse_time(file_time_struct)
      wtime_to_time(make_uint64(file_time_struct[:dw_low_date_time],
        file_time_struct[:dw_high_date_time]))
    end

size() click to toggle source

    # File lib/chef/win32/file/info.rb, line 64
    def size
      make_uint64(@file_info[:n_file_size_low], @file_info[:n_file_size_high])
    end

volume_serial_number() click to toggle source

    # File lib/chef/win32/file/info.rb, line 40
    def volume_serial_number
      @file_info[:dw_volume_serial_number]
    end