打开,输入如下代码:
puts "驱动器为: #{Dir.pwd.split(':/').first}"
puts "路径为: #{Dir.pwd}"
puts "文件名为: #{__FILE__}"
puts "扩展名为: #{File.extname(__FILE__)}"
运行
输出结果如下
驱动器为: C
路径为: C:/Documents and Settings/Administrator/Desktop
文件名为: path.rb
扩展名为: .rb
OK!
用正则表达式:path = "C:\\test.txt"
puts path[/\.[^\.]+$/]
输出是
.txt
或者另一种办法,用scan方法,正则表达式还是一样:
puts path.scan(/\.[^\.]+$/)[0]
举例:加入该rb文件名为xx.rb,路径为xx/xx.rb,需要分析的文件为 yy/yy.txt命令行调用rb文件(假设ruby.exe加入了环境变量):xxx>ruby xx/xx.rb yy/yy.txt
则该参数(yy/yy.rb)通过命令行传给了Ruby解释器,且解释器会将yy/yy.rb赋值给 ARGV[0](ARGV是一个数组常量),所以可以在程序中引用ARGV[0]来获取命令行中传入的路径(yy/yy.txt)
xx.rb文件可以这样开始:
txt_path = ARGV[0]
#异常处理,判断txt_path是否合法,略!!
text = IO.read(txt_path)
#以下为对文本text的分析.....