Ruby on rails 使用Ruby查找网络位置的可用磁盘空间

Ruby on rails 使用Ruby查找网络位置的可用磁盘空间,ruby-on-rails,ruby,Ruby On Rails,Ruby,在Rails应用程序中,我通过以下方式读取网络位置上的文件: Dir.chdir('\\server\share') Dir.glob('**/*.txt').each do |f| .... end 我想使用Ruby查找此目录(Windows PC)中的可用磁盘空间 要查找本地磁盘上的可用字节,我以前使用过gem: 我只能让sys filesystem返回本地磁盘或装入的网络路径的信息。网络位置的格式为\\server\share 有人能推荐一个替代方案吗?正如潜伏者所建议的,Win

在Rails应用程序中,我通过以下方式读取网络位置上的文件:

Dir.chdir('\\server\share')
Dir.glob('**/*.txt').each do |f|
    ....
end
我想使用Ruby查找此目录(Windows PC)中的可用磁盘空间

要查找本地磁盘上的可用字节,我以前使用过gem:

我只能让sys filesystem返回本地磁盘或装入的网络路径的信息。网络位置的格式为
\\server\share


有人能推荐一个替代方案吗?

正如潜伏者所建议的,Windows API可以返回可用磁盘空间:

require "Win32API"  

GetDiskFreeSpaceEx = Win32API.new("kernel32", "GetDiskFreeSpaceEx",
['p','p','p','p'], 'i')

def get_disk_free_space(path)
    free_caller = " " * 8
    total = " " * 8
    free = " " * 8
    GetDiskFreeSpaceEx.call(path, free_caller, total, free)
    l,h = free_caller.unpack("II")
    l + (h << 32)
end

path = "\\\\server\\share\\"
puts "#{get_disk_free_space(path)} bytes"
puts "#{(get_disk_free_space(path)/1073741824.0).round(2)} GB"
需要“Win32API”
GetDiskFreeSpaceEx=Win32API.new(“内核32”,“GetDiskFreeSpaceEx”,
[p'、'p'、'p'、'p']、'i')
def获取磁盘可用空间(路径)
免费电话=“8”
总数=”*8
free=“”*8
GetDiskFreeSpaceEx.call(路径,空闲调用方,总计,空闲)
l、 h=免费呼叫。打开(“II”)

l+(h您可以使用Windows API、[GetDiskFreeSpaceEx]()和。GetDiskFreeSpaceEx接受UNC路径。您还可以检查您正在使用的gem是否支持此功能。
require "Win32API"  

GetDiskFreeSpaceEx = Win32API.new("kernel32", "GetDiskFreeSpaceEx",
['p','p','p','p'], 'i')

def get_disk_free_space(path)
    free_caller = " " * 8
    total = " " * 8
    free = " " * 8
    GetDiskFreeSpaceEx.call(path, free_caller, total, free)
    l,h = free_caller.unpack("II")
    l + (h << 32)
end

path = "\\\\server\\share\\"
puts "#{get_disk_free_space(path)} bytes"
puts "#{(get_disk_free_space(path)/1073741824.0).round(2)} GB"