A custom File.expand_path method for Ruby on Windows that's much
faster and works better.


gem install win32-xpath


require 'win32/xpath'
# That's it, you are now using this library when you call File.expand_path


* A 5x average performance boost over MRI's current method.
* Support for ~user expansion.

Known Issues

* This library does not support drive-current paths for the 2nd argument.
* This library does not support alt-stream name autocorrection.
* This library does not convert short paths to long paths.
It is very unlikely you will ever be affected by any of these things.
Drive-current paths are a relic of DOS 1.0, but even so this library
will handle them in the first argument.
I don't support alt-stream mangling because I don't believe it's the
job of this method to peform autocorrection. Even in MRI it only works
for the default $DATA stream, and then only for a certain type of
syntax error. I do not know when or why it was added.
Failure to convert short paths to long paths is irrelevant since that
has nothing to do with relative versus absolute paths.
One possible "real" issue is that on Windows 7 or earlier you will be
limited to 260 character paths. This is a limitation of the shlwapi.h
functions that I use internally.
If you discover any other issues, please report them on the project
page at

Mingw and Devkit

Make sure you have a recent version of the Devkit installed if you're
using the one-click installer. If you see this warning then you need
to upgrade your Devkit.
"implicit declaration of function 'ConvertSidToStringSidW'"


Park Heesob for encoding advice and help.


Apache 2.0
(C) 2003-2019 Daniel J. Berger, All Rights Reserved


This package 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.


Daniel Berger