You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Ruby中无需解压Zip文件检查路径长度超限的方法

不解压Zip文件检查内部文件路径长度(Ruby实现)

完全可以在不解压Zip文件的前提下完成路径长度检查,用Ruby的rubyzip库就能直接读取Zip内部的文件条目元数据,无需提取文件内容。

实现步骤:

  1. 先安装rubyzip库:
gem install rubyzip
  1. 编写检查逻辑代码:
require 'zip'

def check_zip_path_length(zip_file_path, max_allowed_length)
  Zip::File.open(zip_file_path) do |zip|
    zip.each do |entry|
      # 获取Zip内文件的相对路径
      internal_path = entry.name
      current_length = internal_path.length

      if current_length > max_allowed_length
        puts "⚠️ 路径过长: #{internal_path} (当前长度: #{current_length},限制: #{max_allowed_length})"
      else
        puts "✅ 路径合规: #{internal_path} (当前长度: #{current_length})"
      end
    end
  end
end

# 调用示例:检查example.zip内所有文件路径,限制长度255
check_zip_path_length('example.zip', 255)

关键说明:

  • Zip::File.open会直接打开Zip文件并读取内部目录结构,不会解压到本地
  • entry.name返回的是文件在Zip包内的完整相对路径,和你用Dir.glob遍历本地文件夹得到的路径格式逻辑一致
  • 如果需要计算本地解压后的完整路径长度,可以把你的根路径和entry.name拼接后再计算总长度,比如:full_path = "#{root_path}/#{entry.name}",再检查full_path.length

内容的提问来源于stack exchange,提问作者Jack corley

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.17 18:25:29