π‘ LightUp 7.1 | SketchUp's only real-time renderer that uses object-based rendering
Download Trial
Ruby help, please.
-
I have a directory tree some like this:
C:\MyDir
-SubDir1/SubDir1.txt
-SubDir2/SubDir2.txt
-SubDir3/SubDir3.txtAs you see, in each directory I have a ".txt" file with same name as directory which contains it. What I want is to parse each fie in each directory, but I want to eliminate "." and ".." because there is not a "..txt" or "...txt" file, and my algorithm searches for it.
path = 'C;\MyDir' dirList = Dir.entries(path) dirList.each do |dir| file_name = dir+'.txt' file_path = File.join(path, file_name) file = File.open(file_path, 'r') f.each_line do |line| puts line end end
In this state, the interpreter gives me this error:
(eval):1258:in
initialize': No such file or directory - C:\MyDir/..txt`
And I totally agree with it -
This will cope with files in a folder or its sub-folders...
It avoids the ./.. files...path='C;\MyDir' Dir.foreach(path){|f| if f=='.' or f=='..' ### skip ./.. elsif File.directory?(path+"/"+f) Dir.foreach(path+"/"+f){|ff| if ff=='.' or ff=='..' ### skip ./.. else ###==file inside the sub-folder... ### maybe do stuff to File(path+"/"+f+"/"+ff) ### e.g. "if ff=~/\.txt$/ do this"... pseudo-coded !!! end#if } ### maybe do stuff to Dir(path+"/"+f) else ###==file inside the folder ### maybe do stuff to File(path+"/"+f) end#if }
Advertisement