ruby文件操作函数问题

2024-12-12 14:17:33
推荐回答(2个)
回答1:

省事点就不管有没有目录先创建再说
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

回答2:

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