From: ikezawa@... (ikezawa) Date: 2009-08-21T16:17:47+09:00 Subject: [ruby-list:46325] Re: [ruby-list:46322 , 46323 ] Re: ファイル名について 池澤といいます。 「表」が原因ですかね。 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 "前川 映一" さん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となる原因は、文字化けと判断した次第です。