路漫漫其修远兮,吾将上下而求索
RUBY获取当前的执行文件的路径和目录
上一篇 /
下一篇 2009-12-16 13:41:40
/ 个人分类:Ruby_Watir
获得当前执行文件的文件名:
__FILE__
获得当前文件的目录
File.dirname(__FILE__)
获得当前执行文件的完整路径
require ‘pathname’
Pathname.new(__FILE__).realpath
获得当前执行文件的目录完整路径
require ‘pathname’
Pathname.new(File.dirname(__FILE__)).realpath
如果使用$0: $0是整个ruby执行文件最顶层文件的路径。因此使用if __FILE__==$0可以判断当前ruby文件是被引用还是被执行。
File.basename(filename[, suffix])
:返回filename中的最后一条斜线后面的部分。若给出了参数suffix且它和filename的尾部一致时,该方法会将其删除并返回结果。
File.dirname(filename)
:以字符串的形式返回filename中最后一条斜线之前的部分。若文件名中不含斜线,则返回"."
(当前目录)。
File.expand_path(path[, default_dir])
将path展开为绝对路径后返回该路径字符串。若path是相对路径则以default_dir为基准进行扩展。若没有default_dir或其值为nil
时将使用当前目录。开头的~
会被扩展为主目录(使用环境变量HOME),而~USER
会被扩展为相应用户的主目录。
问题:
脚本放在根目录下可以通过File.dirname(File.expand_path("_FILE_"))+"emailNikName.xls"这个方法来获取脚本;但是如果根目录下的某个文件夹下,就一定要在_"emailNikName.xls"前加上“/”,即_"/emailNikName.xls"。
没有查到好办法,只有通过判断当前目录是否为根目录来决定如何运行脚本,期待更好的办法。如果有那些朋友有,可以留言给我...
收藏
举报
TAG: