Ruby 的 Dir 类
直到本章为止,我们所做的所有工作都涉及到处理内存中的数据。既然我们已经涵盖了 Ruby 语言的所有基础知识,是时候将我们的注意力转向使用 Ruby 中的文件和目录了。本章中会对 Ruby 如何操作目录做具体介绍。
1. Ruby 中更改目录
启动 Ruby 应用程序时,通常是从特定目录完成的。通常,有必要从 Ruby 代码中导航到文件系统上其他位置的目录。Ruby 在 Dir
类中提供了许多有用的目录导航方法。首先,标识当前目录通常很有用。
这可以通过Ruby Dir
类的pwd
方法完成:
Dir.pwd => "/home/ruby"
我们同样可以使用pwd
查看当前目录:
> Dir.pwd
=> "/home/ruby"
使用 Ruby Dir
类的 chdir
方法可以在 Ruby 中更改当前工作目录。此方法将目标目录的路径作为参数:
Dir.chdir("/home/ruby/test")
2. 创建新目录
Ruby 中的目录创建由 Dir
类的 mkdir
方法处理。此方法将新目录的路径作为其参数。这可以是目录的完整路径,也可以是基于当前工作目录的相对路径:
Dir.mkdir("/home/ruby/temp")
=> 0
3. Ruby 中的目录列表
导航到所需目录后,通常需要获取该目录中包含的文件列表。可以使用entries
方法获得这样的列表。entries
方法将需要列出目录的路径作为参数,并返回包含该目录中文件名的数组:
Dir.entries(".")
=> ["techotopia\_stats.jpg", "toolButton.png", ".", "..", "techotopia\_stats\_since\_start.jpg", "music\_728x90\_1.jpg",
"music\_468x60\_a.jpg", "Fedora\_essentials.jpg"]
我们可以使用了解Ruby数组中介绍的一些技术从数组中提取元素:
dirListing.each { |file| puts file }
# ---- 输出结果 ----
techotopia_stats.jpg
toolButton.png
.
..
techotopia_stats_since_start.jpg
music_728x90_1.jpg
music_468x60_a.jpg
Fedora\_essentials.jpg
另外,我们可以利用Dir
类的foreach
方法获得相同的结果:
Dir.foreach(".") { |file| puts file }
# ---- 输出结果 ----
techotopia_stats.jpg
toolButton_IST.png
.
..
techotopia_stats_since_start.jpg
music_728x90_1.jpg
music_468x60_a.jpg
Fedora\_essentials.jpg
4. 小结
本章介绍了 Ruby 中目录处理的基础知识,下一章我们会介绍文件处理的概念。