getting volume names in windows

A

Alfonso

Does anyone knows how can you get the volume name of a drive in windows?
I'm writting a program that should get the name of the cd or dvd
inserted in the drive. The user selects a directory using a gtk dialog
(filechooser), and then I have the path of the folder; but when you
select a cd/dvd, you get only the letter of the drive (E:\, D:\,...).

I have tried also File.dirname(name_of_a_file_in_the_dvd). It doesn't
give you the cd/dvd name...

Thank's in advance



______________________________________________
LLama Gratis a cualquier PC del Mundo.
Llamadas a fijos y móviles desde 1 céntimo por minuto.
http://es.voice.yahoo.com
 
J

Jan Svitok

Does anyone knows how can you get the volume name of a drive in windows?
I'm writting a program that should get the name of the cd or dvd
inserted in the drive. The user selects a directory using a gtk dialog
(filechooser), and then I have the path of the folder; but when you
select a cd/dvd, you get only the letter of the drive (E:\, D:\,...).

I have tried also File.dirname(name_of_a_file_in_the_dvd). It doesn't
give you the cd/dvd name...

Thank's in advance

I guess there's some WINAPI (use WIN32API) for that, or WScript (COM
-> use WIN32OLE) or WMI (COM). Just google a bit (and see Programming
Ruby how to use those libs).
 
A

Alfonso

Jan Svitok escribió:
I guess there's some WINAPI (use WIN32API) for that, or WScript (COM
-> use WIN32OLE) or WMI (COM). Just google a bit (and see Programming
Ruby how to use those libs).
Thank you very much for the idea, I'm going to have a look at that win32ole


______________________________________________
LLama Gratis a cualquier PC del Mundo.
Llamadas a fijos y móviles desde 1 céntimo por minuto.
http://es.voice.yahoo.com
 
J

Jan Svitok

Jan Svitok escribi=F3:
Thank you very much for the idea, I'm going to have a look at that win32o=
le

try:

Listing 4.3 Enumerating Disk Drive Properties

1. Set objFSO =3D CreateObject("Scripting.FileSystemObject")
2. Set colDrives =3D objFSO.Drives
3. For Each objDrive in colDrives
4. Wscript.Echo "Available space: " & objDrive.AvailableSpace
5. Wscript.Echo "Drive letter: " & objDrive.DriveLetter
6. Wscript.Echo "Drive type: " & objDrive.DriveType
7. Wscript.Echo "File system: " & objDrive.FileSystem
8. Wscript.Echo "Is ready: " & objDrive.IsReady
9. Wscript.Echo "Path: " & objDrive.Path
10. Wscript.Echo "Root folder: " & objDrive.RootFolder
11. Wscript.Echo "Serial number: " & objDrive.SerialNumber
12. Wscript.Echo "Share name: " & objDrive.ShareName
13. Wscript.Echo "Total size: " & objDrive.TotalSize
14. Wscript.Echo "Volume name: " & objDrive.VolumeName
15. Next

When the script in Listing 4.3 runs under CScript, information similar
to the following appears in the command window:

Available space: 10234975744
Drive letter: C
Drive type: 2
File system: NTFS
Free space: 10234975744
Is ready: True
Path: C:
Root folder: C:\
Serial number: 1343555846
Share name:
Total size: 20398661632
Volume name: Hard Drive

from: http://discuss.develop.com/archives/wa.exe?A2=3Dind0511d&L=3Ddotnet-w=
informs&T=3D0&F=3D&S=3D&P=3D2611

That would be in ruby:

require 'win32ole'

file_system =3D WIN32OLE.new("Scripting.FileSystemObject")
drives =3D file_system.Drives
drives.each do |drive|
puts "Available space: #{drive.AvailableSpace}"
puts "Drive letter: #{drive.DriveLetter}"
puts "Drive type: #{drive.DriveType}"
puts "File system: #{drive.FileSystem}"
puts "Is ready: #{drive.IsReady}"
puts "Path: #{drive.Path}"
puts "Root folder: #{drive.RootFolder}"
puts "Serial number: #{drive.SerialNumber}"
puts "Share name: #{drive.ShareName}"
puts "Total size: #{drive.TotalSize}"
puts "Volume name: #{drive.VolumeName}"
end

(beware, not tested code so errors can be there!)
 
A

Alfonso

Jan Svitok escribió:
try:

Listing 4.3 Enumerating Disk Drive Properties

1. Set objFSO = CreateObject("Scripting.FileSystemObject")
2. Set colDrives = objFSO.Drives
3. For Each objDrive in colDrives
4. Wscript.Echo "Available space: " & objDrive.AvailableSpace
5. Wscript.Echo "Drive letter: " & objDrive.DriveLetter
6. Wscript.Echo "Drive type: " & objDrive.DriveType
7. Wscript.Echo "File system: " & objDrive.FileSystem
8. Wscript.Echo "Is ready: " & objDrive.IsReady
9. Wscript.Echo "Path: " & objDrive.Path
10. Wscript.Echo "Root folder: " & objDrive.RootFolder
11. Wscript.Echo "Serial number: " & objDrive.SerialNumber
12. Wscript.Echo "Share name: " & objDrive.ShareName
13. Wscript.Echo "Total size: " & objDrive.TotalSize
14. Wscript.Echo "Volume name: " & objDrive.VolumeName
15. Next

When the script in Listing 4.3 runs under CScript, information similar
to the following appears in the command window:

Available space: 10234975744
Drive letter: C
Drive type: 2
File system: NTFS
Free space: 10234975744
Is ready: True
Path: C:
Root folder: C:\
Serial number: 1343555846
Share name:
Total size: 20398661632
Volume name: Hard Drive

from:
http://discuss.develop.com/archives/wa.exe?A2=ind0511d&L=dotnet-winforms&T=0&F=&S=&P=2611


That would be in ruby:

require 'win32ole'

file_system = WIN32OLE.new("Scripting.FileSystemObject")
drives = file_system.Drives
drives.each do |drive|
puts "Available space: #{drive.AvailableSpace}"
puts "Drive letter: #{drive.DriveLetter}"
puts "Drive type: #{drive.DriveType}"
puts "File system: #{drive.FileSystem}"
puts "Is ready: #{drive.IsReady}"
puts "Path: #{drive.Path}"
puts "Root folder: #{drive.RootFolder}"
puts "Serial number: #{drive.SerialNumber}"
puts "Share name: #{drive.ShareName}"
puts "Total size: #{drive.TotalSize}"
puts "Volume name: #{drive.VolumeName}"
end

(beware, not tested code so errors can be there!)
That's great! Thank's a lot! I see why there is so many people
switching to ruby: the incredible comunity :)


______________________________________________
LLama Gratis a cualquier PC del Mundo.
Llamadas a fijos y móviles desde 1 céntimo por minuto.
http://es.voice.yahoo.com
 

Ask a Question

Want to reply to this thread or ask your own question?

You'll need to choose a username for the site, which only take a couple of moments. After that, you can post your question and our members will help you out.

Ask a Question

Members online

No members online now.

Forum statistics

Threads
473,995
Messages
2,570,230
Members
46,819
Latest member
masterdaster

Latest Threads

Top