首页 > 解决方案 > 如何遍历文件夹中的文件并将它们编码为base64以存储在ruby中的数组中?

问题描述

Dir.foreach("/home/kaustubh/Downloads/resumes") do |fopen|
...d << Base64.encode64(file.read)
end

我正在 ruby​​ 终端中读取文件并尝试将整个文件编码为 base64 格式,但我的输出是一个所有值都为空的数组。

数组 d 应该以 base64 编码格式存储数组中的所有文件。

标签: rubyfileiteration

解决方案


您的 Ruby 代码不执行任何操作。如果您将其复制并粘贴到 IRB 中,则会出现错误。

根据您编写的内容,您希望读取目录中的每个文件并将其编码为 base64,然后将 base64 存储在一个数组中。下面是你如何做到这一点:

d = []
Dir['/home/kaustubh/Downloads/resumes/*'].each do |file|
  d << Base64.encode64(File.read(file))
end

Dir['/home/kaustubh/Downloads/resumes/*']将返回该目录内容的路径数组。(包括子目录,所以要小心)

然后调用.each do |file|该数组,并为数组中的每个file调用File.read将文件读入字符串对象。然后你对字符串进行编码Base64.encode64并将其存储在你的数组中。


推荐阅读