Ciao a tutti,
sono fabio e questo è il mio primo post…
La mia domanda potrebbe essere scontata per molti ma non per me…:
Come faccio in ruby ad elencare gli hard disk del mio pc (windoz)?
es. a:, b:, c:\ …
grazie.
Ciao a tutti,
sono fabio e questo è il mio primo post…
La mia domanda potrebbe essere scontata per molti ma non per me…:
Come faccio in ruby ad elencare gli hard disk del mio pc (windoz)?
es. a:, b:, c:\ …
grazie.
Non l’ho mai provato ma dai un okkio al modulo Windows::Volume del gem
windows-pr
(gem install windows-pr e poi ti guardi l’rdoc)
forse il metodo GetLogicalDrives fa al caso tuo…
Paolo
On 6/15/07, Fabio P. [email protected] wrote:
Come faccio in ruby ad elencare gli hard disk del mio pc (windoz)?
es. a:, b:, c:\ …
Ciao Fabio, come ti ha già risposto Paolo esiste la gemma windows-pr
però attenzione perché spesso non è propriamente immediata da
utilizzare se non hai particolari conoscenze del funzionamento delle
API Win32, del resto spesso questa gemma si limita a esporre le API in
maniera piuttosto grezza per essere poi usata principalmente come base
per le gemme appartenenti alle win32-utils.
Comunque ecco come dovresti fare per ottenere la lista delle unità con
le API via windows-pr (btw, il metodo più consono è
GetLogicalDriveStrings visto che GetLogicalDrives restituisce una
bitmask rappresentante le unità disponibili):
require ‘windows/volume’
include Windows::Volume
def get_drive_letters
buffer = " " * 1024
length = GetLogicalDriveStrings(buffer.length, buffer)
buffer[0…length].split(0.chr)
end
p get_drive_letters
Altrimenti, senza windows-pr e in maniera un po’ meno astrusa, puoi
usare win32ole per instanziare un oggetto FileSystemObject e ottenere
l’elenco delle unità :
require ‘win32ole’
def get_drive_letters
drives = []
fso = WIN32OLE.new(‘Scripting.FileSystemObject’)
fso.drives.each { |drive| drives << drive.driveletter + “:\” }
drives
end
p get_drive_letters
On 6/15/07, Daniele A. [email protected] wrote:
Dimenticavo, sempre con win32ole puoi anche interfacciarti con WMI per
effettuare delle query al sistema. Il vantaggio è che WMI ti offre
maggiore flessibilità restituendo anche più informazioni ma con poche
istruzioni e in maniera abbastanza intuitiva. Faccio un esempio che
restituisce le lettere delle unità di tipo “disco locale”:
require ‘win32ole’
def get_drive_letters
drives = []
wmi = WIN32OLE.connect(“winmgmts://”)
devices = wmi.ExecQuery(“SELECT * FROM Win32_LogicalDisk WHERE
DriveType = 3”)
devices.each { |drive| drives << drive.DeviceId }
drives
end
p get_drive_letters
Fabio P. wrote:
Ciao a tutti,
sono fabio e questo è ©l mio primo post…
La mia domanda potrebbe essere scontata per molti ma non per me…:Come faccio in ruby ad elencare gli hard disk del mio pc (windoz)?
es. a:, b:, c:\ …
grazie.
ma sei fabio petrucci nato l’8/12/75?
se sì scrivimi a [email protected]
This forum is not affiliated to the Ruby language, Ruby on Rails framework, nor any Ruby applications discussed here.
Sponsor our Newsletter | Privacy Policy | Terms of Service | Remote Ruby Jobs