From: Robert Klemme Date: 2007-03-21T22:00:04+09:00 Subject: Re: Cygwin + TempFile + Dir.chdir = failure On 21.03.2007 11:48, vulpes wrote: > I'm running ruby 1.8.5-3 for Cygwin under Win XP Pro SP 2. Here's some > code: > > require 'tempfile' > > Dir.chdir("./aDir") do > Tempfile.open("johndoe", ".") do |f| > # Can be even empty > end > end > > With this code, the temporary file in ./aDir will not be removed. Is > this a bug, a Cygwin/Windows "feature", or what? How to get around > this thing? If you do this it will be removed (regardless whether you use chdir or not) - at least that's the behavior I observe on my system: Tempfile.open("johndoe", "/tmp") do |f| # Can be even empty end Basically the chdir isn't needed anyway. It appears you hit a bug in the stdlib: it seems to try to delete "./" but fails because the file does not exist (remember that "." points to a different directory then). I just had a quick check of the Tempfile code and it appears that no attempts are made to get an absolute path. There is not a single occurrence of expand_path in tempfile.rb. The obvious workaround is to use an absolute path (see above). Kind regards robert