From: Chris Dwan Date: 2007-07-23T07:58:30+09:00 Subject: Re: Digest Articles 261154-261275 (11/13) (ruby-talk ML) --Apple-Mail-5-679474674 Content-Transfer-Encoding: 7bit Content-Type: text/plain; charset=US-ASCII; delsp=yes; format=flowed > From: John Joyce > Date: July 22, 2007 7:46:39 AM PDT (CA) > > On Jul 22, 2007, at 5:21 AM, Chris Dwan wrote: > >> I have a problem with a script I'm working on. File.exists? is >> telling me that a file does in fact exist, then immediately after >> when I try to do a File.read, it crashes because the file doesn't >> exist. I know that it does not exist, because I'm testing that >> condition. If the file doesn't exist, it should do something else. >> >> this is on Windows, so maybe the OS is to blame? >> Here's the code, if it helps.. >> >> $debug_log.fatal("does file exist? :: #{ibl}") >> if File.exist?(ibl) >> $debug_log.fatal("YES - it most certainlyt does!") >> iblLocation = ibl >> else >> #find the file and set iblLocation >> end >> File.read(iblLocation) # << bombs here >> >> The file referred to by ibl was recently renamed by this same >> script, so the file name in ibl is no longer valid. The script >> should then go looking for ibl's new name and use that... but it >> won't work >> >> Hope someone can enlighten me. >> Thanks! >> >> > You need to open the file first. > File.new OR File.open > check them with ri first, you may need to choose binary or text > when setting the file mode because you're using window That doesn't make any sense! File.exists? is a class method, and if I try to do File.open, it will fail because the file doesn't exist, so I'll have to catch the exception. It basically means File.exists? is useless so I should just use exceptions to handle stuff like this.. ? --Apple-Mail-5-679474674--