池澤といいます。

「表」が原因ですかね。

C:\>ruby -v
ruby 1.8.7 (2009-06-12 patchlevel 174) [i386-mswin32]

C:\>dir *.html
2008/02/23  22:49                44 index.html
2009/08/21  13:44                42 日本語コード表.html

C:\>irb --simple-prompt
>> File.exist?("日本語コード表.html")
=> false
>> File.exist?('日本語コード表.html')
=> true


On Fri, 21 Aug 2009 15:42:53 +0900
"前川 映一" <eiichi_maekawa / mhi.co.jp> さんwrites:
> ファイルが、実在しているかどうかの確認を、していたのですが、
> ファイル名に日本語を使用しており、結果が、falseとなってしまいます。
> ファイルは、実在しているのですが・・・
> 
> 具体的には、
> def line_count( fname )
>   a = File.exists?( fname )
>   puts "ファイルは" + a.to_s
>   if (!File.exists?( fname ))
>     return 0
>   end
>   lines = 0
>   open( fname ) {|file|
>     while l = file.gets
>       lines += 1
>     end
>   }
>   return lines
> end
> 
> line_number = line_count(
> "C:/Apache2.2/htdocs/qmsPotalShip/confirmation/sjisコード表textConversion
> 用.html" )
> puts "行数は、【"+ line_number.to_s + "】"
> 
> です。
> 上記で、  a = File.exists?( fname )
> 
> で、falseが帰ってきた次第です。
> デバッガで、確認したところ、
> fileTest.rb:8:  if (!File.exists?( fname ))
> (rdb:1) a
> false
> (rdb:1) fname
> "C:/Apache2.2/htdocs/qmsPotalShip/confirmation/\"sjis\203R\201[\203h\225\textConversion\227p\".html"
> 
> となっていました。よって、falseとなる原因は、文字化けと判断した次第です。