查找目录中的文件
列出目录中的所有文件和子目录
Dir.foreach("/path/to/directory") do |entry|
puts entry
end
获取目录中的所有文件和子目录(数组形式)
entries = Dir.entries("/path/to/directory")
puts entries
过滤目录中的文件
只列出文件,排除子目录
Dir.glob("/path/to/directory/*").each do |file|
puts file if File.file?(file)
end
只列出子目录,排除文件
Dir.glob("/path/to/directory/*").each do |dir|
puts dir if File.directory?(dir)
end
创建和删除目录
创建目录
Dir.mkdir("/path/to/new_directory")
删除目录
Dir.delete("/path/to/directory_to_delete")
获取当前工作目录
current_directory = Dir.pwd
puts "Current directory: #{current_directory}"
修改当前工作目录
Dir.chdir("/path/to/new_directory") do
puts "Now in #{Dir.pwd}"
end
查找匹配的文件
# 列出所有以 ".txt" 结尾的文件
Dir.glob("/path/to/directory/*.txt").each do |file|
puts file
end
递归遍历目录
def recursive_list_files(dir)
Dir.foreach(dir) do |entry|
next if entry == '.' || entry == '..'
full_path = File.join(dir, entry)
if File.directory?(full_path)
recursive_list_files(full_path)
else
puts full_path
end
end
end
recursive_list_files("/path/to/directory")
这些是一些 Dir 类的基本用法。Dir 类和相关的 File 类使得 Ruby 对文件系统的操作变得相对简单。如有其他问题,请随时提问。
转载请注明出处:http://www.pingtaimeng.com/article/detail/13439/Ruby