#这个是深度优先搜索
def find(*paths)
paths.collect!{|d| d.dup}
while file=paths.shift
catch(:prune) do
yield file.dup.taint
next unless File.exist? file
begin
if File.lstat(file).directory? then
d=Dir.open(file)
begin
for f in d
next if f=="." or f==".."
if File:: ALT_SEPARATOR and file=~/^(?:[\/\\]|[A-Za-z]:[\/\\]?)$/ then
f=file+f
elsif file=="/" then
f="/"+f
else
f=File.join(file,f)
end
paths.unshift f.untaint #要变成广度优先,最小限度的修改paths.unshift改为paths.push
end
ensure
d.close
end
end
rescue Errno::ENOENT,Errno::EACCES
end
end
end
end
find('/home/season/桌面/linux'){|f| puts f}
分享到:
相关推荐
本篇文章旨在提供一个关于Ruby on Rails基础知识的概览,帮助初学者快速上手。 #### 二、方法概述 在Ruby on Rails中,方法是执行特定任务的基本单元。以下列举了一些常用的方法: 1. **字符串处理方法**: - `...
Sketch Up Ruby API by Sugar 是一份关于 SketchUp 的 Ruby API 文档,用于帮助开发者使用 Ruby 语言开发 SketchUp 插件和应用程序。该文档提供了详细的 API 参考手册,涵盖了 SketchUp 的各个方面,包括应用程序...
以下是关于如何使用Ruby操作Excel的详细步骤和知识点: 1. **引入win32ole库** 首先,你需要在Ruby脚本的开头引入`win32ole`库。这行代码`require 'win32ole'`使得Ruby程序能够调用Excel的API。 2. **启动Excel...
### 基于Ruby语言的Ruby on Rails项目及其代码方案 #### 一、项目概述 本项目基于Ruby语言,利用Ruby on Rails(简称Rails)框架构建。Ruby on Rails是一款使用Ruby语言开发的应用程序框架,其核心是MVC(Model-...
4. **媒体类型(MediaType)**:Roar支持多种媒体类型,如HAL(Hypermedia Application Language)、JSONAPI等,这些都是RESTful API中常见的数据交换格式。通过适配器(Adapters)机制,Roar可以处理不同格式的输入和输出...
Watir,全称 "Web Application Testing in Ruby",是一个开源的自动化测试框架,它允许使用Ruby语言来编写测试脚本,与网页进行交互,以实现浏览器自动化。Watir 支持多种浏览器,如 Chrome、Firefox、Safari 和 ...
- `<ruby>` 和 `<rt>`: 用于展示注音。 - `<small>`: 显示小字体。 - `<time>`: 显示日期和时间。 - `<details>` 和 `<summary>`: 创建可折叠的详细信息块。 - `<progress>`: 显示进度条。 - `<datalist>` 和 ...
3. **Web应用安全**:非技术文档可能解释了常见的Web安全威胁,如XSS(跨站脚本攻击)、SQL注入、CSRF、路径遍历等,以及如何通过Ruby和Rails的内置机制防止这些攻击。 4. **安全编码实践**:文档可能会教导读者...
在应用启动时,确保在AppDelegate.m文件的`application:didFinishLaunchingWithOptions:`方法中调用`[GMSServices provideAPIKey:@"YOUR_API_KEY"];`,这样GoogleMap才能正常工作。 为了实现定位功能,需要导入...
MultiSMTP 接受一组 (1..N) SMTP 提供程序,并将遍历每个提供程序,直到成功发送电子邮件。 安装 将此行添加到应用程序的 Gemfile 中: gem "multi_smtp" 然后执行: $ bundle 配置 对于应该使用自动故障转移...
这个应用程序通常被用来演示API(Application Programming Interface)的功能,特别是与Open API规范相关的功能。Open API,以前称为Swagger,是一种用于描述、生产和消费RESTful API的标准,它允许开发者以JSON格式...
Elixir语言由José Valim创建,于2011年发布,其语法受到Ruby的影响,但在并发和分布式计算方面,Elixir充分利用了Erlang的强大功能。Erlang VM(BEAM)以其在处理大量并发连接和容错能力方面的优秀表现而闻名,因此...