浏览 3591 次
精华帖 (0) :: 良好帖 (0) :: 新手帖 (14) :: 隐藏帖 (0)
|
|
---|---|
作者 | 正文 |
发表时间:2009-12-30
在g:\ding\anpc\163_anpc.rb程序中有如下代码: 3.times { load ‘..\anpc\data_163.rb’ load ‘..\bin\bin_163.rb’ } 如果在g:\ding\anpc\ 下执行163_anpc.rb, 程序可以正常运行,但如果在别的路径,比如c:\,执行g:\ding\anpc\163_anpc.rb,程序就会报错,说找不到data_163.rb和bin_163.rb。 解决问题的方法是给ruby程序以完整的路径,如下所示: 3.times { load File.join(File.dirname(__FILE__), ‘data_163.rb’) load File.join(File.dirname(__FILE__), ‘../bin/bin_163.rb’) } 类似的例子: 在g:\ding\anpc\data_163.rb程序中有如下代码: #初始化user users = [] File.open(’user_163_anpc.txt’) do |f| f.each_line do |line| words = line.split(’ ‘) users << {:user => words[0], :password => words[1]} end end 该程序在g:\ding\anpc\ 下执行data_163.rb, 文件操作正常,但如果在别的路径,比如c:\,执行g:\ding\anpc\data_163.rb,程序就会报错,说找不到文件user_163_anpc.txt。 解决问题的方法是给待操作的文件以完整的路径,如下所示: #初始化user users = [] users_filename = File.join(File.dirname(__FILE__), ‘user_sina_anpc.txt’) File.open(users_filename) do |f| f.each_line do |line| words = line.split(’ ‘) users << {:user => words[0], :password => words[1]} end end 我自己的原创:http://www.sdgz.cn 声明:ITeye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
推荐链接
|
|
返回顶楼 | |
发表时间:2010-01-06
hmm...常见的做法不是File.expand_path(File.dirname(__FILE__))么
|
|
返回顶楼 | |
发表时间:2010-01-08
RednaxelaFX 写道 hmm...常见的做法不是File.expand_path(File.dirname(__FILE__))么 这里,不仅要获得绝对路径,还需要加上同目录下的其它文件名。 |
|
返回顶楼 | |
发表时间:2010-01-11
你也可以把文件所在的目录加到LOAD_PATH里去啊
$:.unshift "/path/to/that/lib" 如果这个目录里的文件比较多的话,你的方法看起来就有太多的File.dirname(__FILE__) |
|
返回顶楼 | |
发表时间:2010-01-11
trace 写道 你也可以把文件所在的目录加到LOAD_PATH里去啊
$:.unshift "/path/to/that/lib" 如果这个目录里的文件比较多的话,你的方法看起来就有太多的File.dirname(__FILE__) 主要的目的是将测试程序放在usb盘上,方便在不同计算机上运行。 |
|
返回顶楼 | |
发表时间:2010-01-18
try001 写道 trace 写道 你也可以把文件所在的目录加到LOAD_PATH里去啊
$:.unshift "/path/to/that/lib" 如果这个目录里的文件比较多的话,你的方法看起来就有太多的File.dirname(__FILE__) 主要的目的是将测试程序放在usb盘上,方便在不同计算机上运行。 那你可以用符号链接嘛, 一个ln -s 搞定。 |
|
返回顶楼 | |
发表时间:2010-01-19
dazuiba 写道 try001 写道 trace 写道 你也可以把文件所在的目录加到LOAD_PATH里去啊
$:.unshift "/path/to/that/lib" 如果这个目录里的文件比较多的话,你的方法看起来就有太多的File.dirname(__FILE__) 主要的目的是将测试程序放在usb盘上,方便在不同计算机上运行。 那你可以用符号链接嘛, 一个ln -s 搞定。 谢谢dazuiba兄弟,用subst命令搞掂。 现在正重新整理文件,估计可以大大提高程序结构的整洁,我以前怎么没想到呢?或许可以将程序所在的文件夹映射到虚拟内存中,提高运行速度? |
|
返回顶楼 | |