diff options
Diffstat (limited to 'ruby_1_8_5/ext/dl/sample/drives.rb')
-rw-r--r-- | ruby_1_8_5/ext/dl/sample/drives.rb | 70 |
1 files changed, 0 insertions, 70 deletions
diff --git a/ruby_1_8_5/ext/dl/sample/drives.rb b/ruby_1_8_5/ext/dl/sample/drives.rb deleted file mode 100644 index 8a590404b1..0000000000 --- a/ruby_1_8_5/ext/dl/sample/drives.rb +++ /dev/null @@ -1,70 +0,0 @@ -# -*- ruby -*- -# drives.rb -- find existing drives and show the drive type. - -require 'dl' -require 'dl/import' - -module Kernel32 - extend DL::Importable - - dlload "kernel32" - - extern "long GetLogicalDrives()" - extern "int GetDriveType(char*)" - extern "long GetDiskFreeSpace(char*, long ref, long ref, long ref, long ref)" -end - -include Kernel32 - -buff = Kernel32.getLogicalDrives() - -i = 0 -ds = [] -while( i < 26 ) - mask = (1 << i) - if( buff & mask > 0 ) - ds.push((65+i).chr) - end - i += 1 -end - -=begin -From the cygwin's /usr/include/w32api/winbase.h: -#define DRIVE_UNKNOWN 0 -#define DRIVE_NO_ROOT_DIR 1 -#define DRIVE_REMOVABLE 2 -#define DRIVE_FIXED 3 -#define DRIVE_REMOTE 4 -#define DRIVE_CDROM 5 -#define DRIVE_RAMDISK 6 -=end - -types = [ - "unknown", - "no root dir", - "Removable", - "Fixed", - "Remote", - "CDROM", - "RAM", -] -print("Drive : Type (Free Space/Available Space)\n") -ds.each{|d| - t = Kernel32.getDriveType(d + ":\\") - Kernel32.getDiskFreeSpace(d + ":\\", 0, 0, 0, 0) - _,sec_per_clus,byte_per_sec,free_clus,total_clus = Kernel32._args_ - fbytes = sec_per_clus * byte_per_sec * free_clus - tbytes = sec_per_clus * byte_per_sec * total_clus - unit = "B" - if( fbytes > 1024 && tbytes > 1024 ) - fbytes = fbytes / 1024 - tbytes = tbytes / 1024 - unit = "K" - end - if( fbytes > 1024 && tbytes > 1024 ) - fbytes = fbytes / 1024 - tbytes = tbytes / 1024 - unit = "M" - end - print("#{d} : #{types[t]} (#{fbytes} #{unit}/#{tbytes} #{unit})\n") -} |