class Itools::ImgFinder
Attributes
find_path[RW]
image_count[RW]
images[RW]
search_files[RW]
unuse_images[RW]
Public Class Methods
find(temp_find_dir)
click to toggle source
查找
# File lib/itools/find_unuse_img.rb, line 39 def self.find(temp_find_dir) imgFinder = ImgFinder.new imgFinder.find_path = temp_find_dir # 第一步:找到该文件夹下所有的图片文件 Find.find(temp_find_dir) do |filename| if File.file?(filename) #如果是文件,则从文件中查找,忽略文件夹 if Image.is_image_format(File.extname(filename)) # p File.basename(filename) # exit imgFinder.image_count = imgFinder.image_count + 1 imageResult = FindResult.new(Image.get_image_name(File.basename(filename,".*")),filename) imgFinder.images << imageResult elsif File.extname(filename).eql?(".m") imgFinder.search_files << filename end end end if imgFinder.images.size == 0 puts "\033[32m查找成功,未发现图片\033[0m" return else puts "\033[32m查找成功,共发现图片#{imgFinder.images.size}张\033[0m" end # 第二步:找到图片是否使用 imags = imgFinder.get_img_name_strs.uniq #要查找的图片名称数组 puts "\033[32m需要查找的图片有#{imags.size}张\033[0m" # imgFinder.search_files #要查找的文件 imgFinder.search_files.each {|file| File.read(file).each_line do |line| haveStr = StringHandle.containsStr(line,imags) if haveStr != -1 puts "#{imags[haveStr]}在使用...,剩余查找项#{imags.size-1}个" imags.delete_at(haveStr) end end } puts "\033[32m无用图片#{imags.size}张,图片名称如下:\033[0m" unuse_total_size = 0 Spreadsheet.client_encoding = 'utf-8' book = Spreadsheet::Workbook.new sheet1 = book.create_worksheet sheet1.row(0)[0] = "文件名" sheet1.row(0)[1] = "文件路径" imags.each_with_index {|item,idx| sheet1.row(idx+1)[0] = item path = imgFinder.get_image_path(item) sheet1.row(idx+1)[1] = path unuse_total_size = unuse_total_size + File.size(path) puts item } book.write "#{imgFinder.find_path}/search_result.xls" puts "\033[32m文件已经保存到#{imgFinder.find_path}/search_result.xls,无用图片大小:#{unuse_total_size}B\033[0m" puts "\033[32m内容仅供参考,具体还要自己通过结果查看一下\033[0m" end
new()
click to toggle source
# File lib/itools/find_unuse_img.rb, line 17 def initialize @image_count = 0 @images = [] @search_files = [] end
Public Instance Methods
get_image_path(image)
click to toggle source
# File lib/itools/find_unuse_img.rb, line 31 def get_image_path(image) @images.each {|item| if item.name.eql?(image) return item.path end } end
get_img_name_strs()
click to toggle source
得到所有图片名称字符
# File lib/itools/find_unuse_img.rb, line 23 def get_img_name_strs result_arr = [] @images.each {|item| item_name = Image.get_image_name(File.basename(item.name, ".*")) result_arr << item_name } return result_arr end