Forum: Ruby List of drives?

Announcement (2017-05-07): www.ruby-forum.com is now read-only since I unfortunately do not have the time to support and maintain the forum any more. Please see rubyonrails.org/community and ruby-lang.org/en/community for other Rails- und Ruby-related community platforms.
ruby talk (Guest)
on 2006-01-20 06:25
(Received via mailing list)
Is there a way in ruby with out extra libraries to get a list of drives?
hard drives, dvd drives, network drives, ...?

Becker
Eivind E. (Guest)
on 2006-01-20 12:35
(Received via mailing list)
On 1/20/06, ruby talk <removed_email_address@domain.invalid> wrote:
> Is there a way in ruby with out extra libraries to get a list of drives?
> hard drives, dvd drives, network drives, ...?

No.

This is highly operating system specific, and it's even hard to
define, especially when you include "network drives".

Eivind.
Pau Garcia i Quiles (Guest)
on 2006-01-22 18:55
(Received via mailing list)
-----BEGIN PGP SIGNED MESSAGE-----
Hash: SHA1

On Friday 20 January 2006 04:47, ruby talk wrote:
> Is there a way in ruby with out extra libraries to get a list of drives?
> hard drives, dvd drives, network drives, ...?
>
> Becker

For Unix/Linux/MacOSX it would be rather easy, just run `mount` and
parse the
output.

For Windows, you may just test every unit A: to Z:. You'll need to
access the
Win32 API to look for volumes without an assigned mount point (unit
letter),
such as SAN mounted volumes.

I don't know how to do it in Mac OS Classic, I never used those versions
of
Mac OS.

- --
Pau Garcia i Quiles
http://www.elpauer.org
(En general no puedo contestar antes de 10 días)
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)

iD8DBQFD07h3/DzYv9iGJzsRAij+AKDLue7QnBIR0XjjEjHA3/BhclWKMQCeNMZ+
XH3pA57PL6QAipj5yGPbjcA=
=iKiS
-----END PGP SIGNATURE-----
Wilson B. (Guest)
on 2006-01-23 18:19
(Received via mailing list)
On 1/19/06, ruby talk <removed_email_address@domain.invalid> wrote:
> Is there a way in ruby with out extra libraries to get a list of drives?
> hard drives, dvd drives, network drives, ...?
>

On Windows systems, you can do:
require 'win32ole'
drives = []
file_system = WIN32OLE.new( 'Scripting.FileSystemObject' )
file_system.Drives.each { |drive| drives << drive.DriveLetter }
#drives now contains a list of existing drive letters.
puts drives

There are other useful properties on the 'drive' object, including
ShareName, which will tell you the network path, for remote volumes.
This topic is locked and can not be replied to.