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
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
# File lib/chef/win32/file/info.rb, line 52 def creation_time parse_time(@file_info[:ft_creation_time]) end
# 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
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
# File lib/chef/win32/file/info.rb, line 48 def last_access_time parse_time(@file_info[:ft_last_access_time]) end
# File lib/chef/win32/file/info.rb, line 56 def last_write_time parse_time(@file_info[:ft_last_write_time]) end
# File lib/chef/win32/file/info.rb, line 60 def links @file_info[:n_number_of_links] end
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
# 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
# File lib/chef/win32/file/info.rb, line 40 def volume_serial_number @file_info[:dw_volume_serial_number] end