From: bdezonia@... Date: 2009-02-06T00:09:30+09:00 Subject: Re: Dir.foreach() crash On Feb 4, 8:00 pm, Julian Leviston wrote: > You mean backslashes. Yeah, use File::SEPARATOR or just use explicit   > strings - ie single quoted > > Blog:http://random8.zenunit.com/ > Learn rails:http://sensei.zenunit.com/ > > On 05/02/2009, at 12:19 PM, 7stud -- wrote: > > > unknown wrote: > >> I am getting the following error: > > >> D:/BackupScripts/trimMachines.rb:130:in `open': Invalid argument -   > >> x:\. > >> \data\dubinin\vmap\v1180\soamafr\lib_180\trans\k\f\g\e   > >> (Errno::EINVAL) > > >> I've checked and the directory mentioned does exist, the user account > >> has full access to the directory, the directory is not empty, the > >> directory name is < 255 chars long, etc. > > >> This script works for millions of files with directories that have > >> much longer names and many more subdirectories than this example > >> failure. The failures happen routinely after a few days of running   > >> the > >> script and always on different directories. > > >> Does anyone have a clue what the problem could be? Is this a Ruby   > >> bug? > > > Forward slashes are dangerous in strings because things like \v are > > escape characters? > > -- > > Posted viahttp://www.ruby-forum.com/. > > All \'s in the script are entered as "\\". Like I said this script works for millions of files. Its doubtful only one of them has a \v in it. Also this script will not always fail on this directory which says this is not the problem. This is not the first problem I have had with Ruby on this (64 bit) machine. If I run the two backup/trim scripts I have written at system startup they eventually quit and I can't see the error messages because they have no visible console. If I run them from consoles explicitly the backup script never terminates and the trim script dies after a few days. Is it possible that the two scripts are accessing the directory at the same time and somehow that is causing some kind of interference? The backup script would be creating directories and putting files in them. So the trim should not be thrown off. If in the trim script a previous Dir.foreach in the parent directory found this directory then the Dir.foreach in the child should certainly find the directory. Again this seems like a Ruby bug.