[#49241] dRuby IPv6 — masa <masap.hat@...>
スイスの畠山です。
6 messages
2013/03/01
[#49247] Ruby 1.9系 on Windows8 にて Kernel#gets でマルチバイト文字入力の不具合 — Takeshi Iogawa <alpha@246.ne.jp>
いおがわです。こんにちは。
4 messages
2013/03/02
[#49254] forループ内の変数のスコープに関して — 村上 友洋 <tomohiroz@...>
初めまして。
5 messages
2013/03/06
[#49300] 例外を飛ばすThread内ではpassをしないとそのThreadはjoinできないことがある? — Isamu Mogi <dyob@...>
こんにちは。茂木と申します。
6 messages
2013/03/27
[#49301] Re: 例外を飛ばすThread内ではpassをしないとそのThreadはjoinできないことがある?
— KOSAKI Motohiro <kosaki.motohiro@...>
2013/03/27
(3/27/13 8:51 AM), Isamu Mogi wrote:
[ruby-list:49297] Re: Windowsでの波ダッシュファイル名の取得
From:
IZUMI HIROAKI <izumi@...>
Date:
2013-03-25 14:25:17 UTC
List:
ruby-list #49297
和泉です。
From whiteleaf <2nd.leaf@gmail.com> :
> whiteleaf です。
> とりあえず、Dir.glob("*") (か Dir["*"])なら普通に取得できますね。
ありがとうございます。とりあえず、Dir.glob("*")で対処します。
もう少し確認してみました。
-- tp00.rb
# coding: utf-8
p __ENCODING__
fname="X\u301CZ.txt"
fp=open(fname,"w")
fp.close
p [:fname,fname, File.exist?(fname)]
dname="\u3042\u301C\u304A"
Dir.mkdir(dname) unless File.exist?(dname)
p [:dname,dname, File.exist?(dname)]
Dir.glob("*") {|n| p [:glob,n,n.encoding,File.exist?(n)] } #
Test 1 glob
Dir.foreach(".") {|n| p [:foreach,n,n.encoding,File.exist?(n)] } #
Test 2 foreach
require 'find'
Find.find(".") {|n| p [:find,n,n.encoding,File.exist?(n)] } #
Test 3 find
require 'win32ole'
fso = WIN32OLE.new('Scripting.FileSystemObject') #
test 4 FileSystemObject
sFolder = fso.GetFolder('.')
sFolder.Files.each {|ssf|
n = ssf.Path
p [:FileSystemObject,n,n.encoding,File.exist?(n)]
}
sFolder.SubFolders.each {|ssf|
n = ssf.Path
p [:FileSystemObject,n,n.encoding,File.exist?(n)]
}
-- 結果
D:\Testdir>tp00.rb
#<Encoding:UTF-8>
[:fname, "X\u301CZ.txt", true]
[:dname, "\u3042\u301C\u304A", true]
[:glob, "tp00.rb", #<Encoding:UTF-8>, true]
[:glob, "X\u301CZ.txt", #<Encoding:UTF-8>, true]
[:glob, "\u3042\u301C\u304A", #<Encoding:UTF-8>, true]
[:foreach, ".", #<Encoding:Windows-31J>, true]
[:foreach, "..", #<Encoding:Windows-31J>, true]
[:foreach, "tp00.rb", #<Encoding:Windows-31J>, true]
[:foreach, "X?Z.txt", #<Encoding:Windows-31J>, false]
[:foreach, "あ?お", #<Encoding:Windows-31J>, false]
[:find, ".", #<Encoding:UTF-8>, true]
[:find, "./X?Z.txt", #<Encoding:UTF-8>, false]
[:find, "./tp00.rb", #<Encoding:UTF-8>, true]
[:find, "./あ?お", #<Encoding:Windows-31J>, false]
[:FileSystemObject, "D:\\Testdir\\tp00.rb", #<Encoding:Windows-31J>,
true]
[:FileSystemObject, "D:\\Testdir\\X?Z.txt", #<Encoding:Windows-31J>,
false]
[:FileSystemObject, "D:\\Testdir\\あ?お", #<Encoding:Windows-31J>,
false]
--
デフォルトエンコードで返すのか、Windowsのインタフェースでのコードで返す
かの違いなのかな。
Find#findの結果のエンコードは、自動判別なのかな。
ちょっと分かりにくい仕様ですね。
では。
--
Hiroaki Izumi