Oops, your profile's looking a bit empty! To help us tailor your experience, please fill in key details like your SketchUp version, skill level, operating system, and more. Update and save your info on your profile page today!
π« Lightbeans Update | Metallic and Roughness auto-applied in SketchUp 2025+ Download
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 endIn this state, the interpreter gives me this error:
(eval):1258:ininitialize': 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