Ruby在复制文件时显示进度
发布时间:2020-12-16 19:32:38 所属栏目:百科 来源:网络整理
导读:我希望能够在使用 Ruby复制文件时显示文件复制操作的进度(当前使用的是FileUtils.cp)我已经尝试将verbose选项设置为true,但这似乎只是向我展示了发出的复制命令. 我现在正在从命令行运行这个脚本,所以理想情况下我希望能够在复制文件时呈现像SCP那样的东西,
我希望能够在使用
Ruby复制文件时显示文件复制操作的进度(当前使用的是FileUtils.cp)我已经尝试将verbose选项设置为true,但这似乎只是向我展示了发出的复制命令.
我现在正在从命令行运行这个脚本,所以理想情况下我希望能够在复制文件时呈现像SCP那样的东西,但只要我能看到进展,我就不会对演示文稿感到太过兴奋. 解决方法
由于我没有足够的代表编辑答案,这里是基于pisswillis答案的我的版本,我发现了一个
progress bar gem,我也在我的例子中使用.我已经测试了这个并且它到目前为止一直运行良好,但它可以做一些清理:
require 'rubygems' require 'progressbar' in_name = "src_file.txt" out_name = "dest_file.txt" in_file = File.new(in_name,"r") out_file = File.new(out_name,"w") in_size = File.size(in_name) # Edit: float division. batch_bytes = ( in_size / 100.0 ).ceil total = 0 p_bar = ProgressBar.new('Copying',100) buffer = in_file.sysread(batch_bytes) while total < in_size do out_file.syswrite(buffer) p_bar.inc total += batch_bytes if (in_size - total) < batch_bytes batch_bytes = (in_size - total) end buffer = in_file.sysread(batch_bytes) end p_bar.finish (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- c# – UWP Application Insights没有崩溃的调用堆栈
- ruby – 如何使用.html.erb作为Sinatra视图的文件扩展名?
- u-boot-2014.04移植FL2440(norflash启动)
- ruby-on-rails – Rails memcache存储默认的自动过期时间
- 将类添加到c项目
- vue监听scroll的坑的解决方法
- ruby-on-rails – Rails预编译:为什么LESS.ERB文件不起作用
- 您可以创建(Oracle JVM)Java堆的最小值是多少?
- Ruby:找不到RedCloth-4.2.9
- 是否有相当于PostgreSQL的Redgate SQL Compare