gpt4 book ai didi

ruby 目录函数

转载 作者:太空宇宙 更新时间:2023-11-03 16:32:55 25 4
gpt4 key购买 nike

代码如下:

Dir.foreach('C:\\Documents and Settings\\') { |entry|
if File.directory?( entry )
puts entry
end
}

Dir.foreach('\\\\10.80.14.20\\transfer') { |entry|
if File.directory?( entry )
puts entry
end
}

C:\\Documents and Settings\\10.80.14.20 都包含目录。但它只列出了 C:\Documents and Settings 下的文件夹。虽然未列出 \\\\10.80.14.20 下的文件夹。似乎 File.directory?( entry ) 无法在共享文件夹下工作。我对吗?如果是这样,在共享文件夹下有没有其他方法来识别文件夹?

最佳答案

\\10.80.14.20\transfer 映射为单独的驱动器 在您尝试运行此程序的计算机上说 F: 然后修改您的代码以

Dir.foreach('f:\\') { |entry|
if File.directory?("f:\\#{entry}")
puts entry
end
}

但是,如果您打算将此类代码作为 Windows 服务运行,则必须从代码中映射驱动器,因为 Windows 服务无法识别外部映射的驱动器。

require 'win32ole'
def map_my_drive
net = WIN32OLE.new('WScript.Network')
user_name = "<your_domain>\\<your_user>"
password = "<your_password>"
net.MapNetworkDrive( 'f:', "\\\\10.80.14.20\\transfer", nil, user_name, password )
end

map_my_drive

Dir.foreach('f:\\') { |entry|
if File.directory?("f:\\#{entry}")
puts entry
end
}

关于ruby 目录函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12757735/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com