文件与输入输出操作:递归、排序及YAML序列化详解
1. 目录查询与递归的应用
在处理文件和目录时,有时需要遍历指定根目录下的所有子目录并计算它们的大小。这对于查找大文件和目录,以便通过存档或删除来释放磁盘空间非常有用。然而,导航子目录会带来编程上的挑战,因为你无法预知会找到多少子目录,而且子目录可能会有多层嵌套。
为了解决这个问题,我们可以使用递归方法。递归方法是指在方法内部调用自身的方法。以下是一个示例代码 file_info.rb :
def processfiles( aDir )
totalbytes = 0
Dir.foreach( aDir ){
|f|
mypath = "#{aDir}\\#{f}"
s = ""
if File.directory?(mypath) then
if f != '.' and f != '..' then
bytes_in_dir = processfiles(mypath) # <==== recurse!
puts( "<DIR> --->
#{mypath} contains [#{bytes_in_dir/1024}] KB" )
end
else
filesize = File.size(mypath)
totalbytes += filesize
puts ( "#{mypath} : #{filesize/1024}K" )
递归遍历与YAML序列化详解
超级会员免费看
订阅专栏 解锁全文
268

被折叠的 条评论
为什么被折叠?



