这里我使用Dir :: pwd在目录的当前路径下创建logs文件夹。但是我想更改此选项以从配置文件中选择将在任何其他计算机上运行的目录路径。
date_directory= "#{Dir::pwd}/logs/#{DateHelper.getDirectoryYearStamp}/#{DateHelper.getDirectoryMonthStamp}/#{DateHelper.getDirectoryDateStamp}/"
FileUtils.mkdir_p(date_directory) unless Dir.exists?(date_directory)
我厌倦了给出绝对路径并且它有效。但是如何通过传递相对路径来创建目录?
答案 0 :(得分:0)
您已经在使用相对路径,因此是通用解决方案,当前文件夹的子文件夹是相对位置。您发布的代码是否有效?但在你的问题中你提到配置文件,这是你想要的吗?什么样的档案? yaml,ini或简单的文本文件? 如果是一个简单的文本文件,你可以用
path = File.read("#{File.dirname(__FILE__)}/path.txt")
编辑:根据您的评论,以下片段将在/ some / x / y / z中创建一天的日志文件 文件夹中。
require 'logger'
$log = Logger.new("/some/x/y/z/logs.txt", 'daily' )
$log.info "teststring"
在文件“C:\ some \ x \ y \ z \ logs.txt”
中给出# Logfile created on 2013-04-05 13:17:27 +0200 by logger.rb/31641
I, [2013-04-05T13:20:19.811837 #3300] INFO -- : teststring