# File lib/win32/file.rb, line 944 def sparse=(bool) unless bool warn 'cannot remove sparse property from a file - operation ignored' return end bytes = [0].pack('L') handle = CreateFile( self.path, FILE_READ_DATA | FILE_WRITE_DATA, FILE_SHARE_READ | FILE_SHARE_WRITE, 0, OPEN_EXISTING, FSCTL_SET_SPARSE(), 0 ) if handle == INVALID_HANDLE_VALUE raise ArgumentError, get_last_error end val = DeviceIoControl( handle, FSCTL_SET_SPARSE(), 0, 0, 0, 0, bytes, 0 ) if val == 0 raise ArgumentError, get_last_error end self end