为了账号安全,请及时绑定邮箱和手机立即绑定

ruby文件操作函数问题

/ 猿问

ruby文件操作函数问题

慕森王 2019-05-25 15:15:18

在ruby中,给出一个文件路径,如:file_path='./a/b/test.txt',有没有能判断假如a、b、或test.txt不存在就自动创建,要存在就往下执行的函数?
比如:
file_path='./a/b/test.txt'
function(file_path)
File.open(file_path)
有没有这样的函数,目前我是这么做的
file_info = File.split(file_path)
FileUtils.mkdir_p(file_info[0])
File.new(file_path, "w+") if !File.exist?(file_path)
求指导
大哥们,我是想问ruby有没有现成的函数?

查看完整描述

2 回答

?
莫回无

FileUtils.mkdir_p(File.dirname(fname)) rescue {}
然后当作目录已经创建处理

或者这样
#!/usr/bin/env
require "fileutils"

def eazy_file(fname)
begin
File.open(fname, "w+") do |file|
yield file
end
rescue Errno::ENOENT => e
FileUtils.mkdir_p(File.dirname(fname))
retry
end
end

if __FILE__ == $0
eazy_file("a/b/c/test.txt") do |file|
file.puts "Hello world!"
end
end

 




查看完整回答
反对 2019-05-26
?
ibeautiful


if Dir.glob('a').size == 0
Dir.mkdir('./a')
end
if Dir.glob('./a/b').size == 0
Dir.mkdir('./a/b')
end
if !File.exist?("./a/b/test.txt")
File.new("./a/b/test.txt","w")
end

 




查看完整回答
反对 2019-05-26

添加回答

回复

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信