A Ruby library for getting filesystem information
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Failed to load latest commit information.


= Description
  A Ruby interface for getting file system information.

= Installation
  gem install sys-filesystem

= Synopsis
  require 'sys/filesystem'
  include Sys
  # Display information about a particular filesystem.
  p Filesystem.stat('/')

  # Sample output

    @base_type = "ufs",
    @flags = 4,
    @files_available = 3817457,
    @block_size = 8192,
    @blocks_available = 19957633,
    @blocks = 34349612,
    @name_max = 255,
    @path = "/",
    @filesystem_id = 35651592,
    @files = 4135040,
    @fragment_size = 1024,
    @files_free = 3817457,
    @blocks_free = 20301129
  # Describe all mount points on the system
  Filesystem.mounts{ |mount| p mount }
  # Find the mount point of any particular file
  puts Filesystem.mount_point('/home/djberge/some_file.txt') => '/home'

= Notes
  This is a pure Ruby implementation that uses FFI. This means it should work
  with JRuby, too.

= Sample code
  Run 'rake example' if you want to see a basic sample run. The actual code
  is 'example_stat.rb' in the 'examples' directory. Modify it as you see fit.

= Known Bugs
  None that I'm aware of. Please report bugs on the project page at

= Future Plans
  Add better 64-bit support for Linux and BSD.
  Other suggestions welcome.

= Acknowledgements
  Mike Hall, for ideas and code that I borrowed from his 'filesystem' library.
  Park Heesob, for implementation and API ideas for the MS Windows version.
  Nobuyoshi Miyokawa, for adding the original FreeBSD and OS X support.
= License
  Artistic 2.0

= Copyright
  (C) 2003-2018 Daniel J. Berger
  All Rights Reserved

= Warranty
  This library is provided "as is" and without any express or
  implied warranties, including, without limitation, the implied
  warranties of merchantability and fitness for a particular purpose.

= Author
  Daniel J. Berger