Google Groups no longer supports new Usenet posts or subscriptions. Historical content remains viewable.
Dismiss

Itterating through one's path(s)

0 views
Skip to first unread message

John Maclean

unread,
Feb 11, 2006, 9:07:04 PM2/11/06
to
I'd like to see if I can itterate through the directories
of my PATH (or $PATH for Unix-based systems) using blocks.

#!/usr/bin/ruby -w path =
ENV['PATH'].split(File::PATH_SEPARATOR)

path.each{|zz| Dir.new zz}

There's an example of using nested for loops in
file:///usr/share/doc/ruby-1.8.4/sample/dir.rb
...
# directory access
# list all files but .*/*~/*.o
dirp = Dir.open(".")
for f in dirp
case f
when /^\./, /~$/, /\.o/
# do not print
else
print f, "\n"
end
end
dirp.close

--
John Maclean
MSc (DIC)
07739 171 531

Scott

unread,
Feb 11, 2006, 11:22:18 PM2/11/06
to
I'm not exactly sure what your're trying to accomplish. If you're
trying to get a list of all the files that are under each path in the
ENV['PATH'] variable, methinks this'll work:

files = []
filter = /^\./, /~$/, /\.o/ # btw, this regex is invalid.
ENV['PATH'].split(File::PATH_SEPARATOR).each do |path|
files.concat Dir.open(path).select { |d| !d.match(filter) }
end

If thats totally not what you're trying to do, then maybe you could
clarify? Also, the regex you list isnt valid, the forward slashes need
to be escaped, but even then, there wont be any forward slashes in your
file names.

Scott

0 new messages