利用ruby数组检查指定目录下的文件是否有改变

  项目组对软件进行了重构,新增和删除了一些文件。那么我们怎样来确定新增或删除了那些文件。 思路如下:

   首先安装旧版本的软件,递归获取到该目录下的所有文件列表。

   然后再安装新版本软件,同样递归获取到该目录下的所有文件列表 。

   最后比较2个文件列表的差别。即可知道新增了那些文件。

  

使用ruby数组的“减法”,我们可以轻松实现对比的操作,我们先编写一个可以递归获取指定目录下所有文件的rb文件:

# testDir.rb

 

#假设我们要查找D:/script/ruby下的所有文件

Dir.chdir('D:/script/ruby')
puts ("***** The inventory is : #{Dir.pwd}")

Dir.glob('**/*').each { | file | print Dir.pwd, file.downcase,"/n" }.sort

 

 

我们运行该脚本,把结果保存到old.txt:

D:/script/ruby>ruby testDir.rb>old.txt

 

生成了一个名为old.txt的文件,内容为:

***** The inventory is : D:/script/ruby
D:/script/rubyhello.rb
D:/script/rubysite_spider.zip
D:/script/rubysite_spider
D:/script/rubyclass/chinese.rb
D:/script/rubyclass/human.rb

。。。

 

接下来我们在D:/script/ruby目录下新建一个名为findme.log文件,然后重新执行脚本生成一个名为new.txt的文件

D:/script/ruby>ruby testDir.rb>new.txt

 

至此,和old.txt中的文件列表比,new.txt中应该是多了2个文件: new.txt,findem.log.我们使用ruby数组的“减法”来验证下是否正确。

#compareFileNums.rb

old_array=File.open('D:/script/ruby/old.txt').readlines
new_array=File.open('D:/script/ruby/new.txt').readlines
puts new_array-old_array

 

 

执行该文件:

D:/script/ruby>ruby compareFileNums.rb
D:/script/rubyfindme.log
D:/script/rubynew.txt

 

结果我们预期的一致。 相比java,ruby确实有一些非常快捷的方法。没有最好的编程语言,只有最适合处理某项功能的语言。^-^

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值