Project1
标题:
关于FileTest.exist?(filename)
[打印本页]
作者:
赤点
时间:
2009-8-28 23:45
标题:
关于FileTest.exist?(filename)
本帖最后由 赤点 于 2009-9-5 01:31 编辑
FileTest.exist?(filename)
filename如果是中文名好像就检测不到了
有什么办法可以解决?
作者:
ONEWateR
时间:
2009-8-28 23:49
这个……紫苏前辈回答过~
丢个传送门
http://rpg.blue/viewthread.php?tid=128127&highlight=
作者:
赤点
时间:
2009-8-28 23:53
我要的是文件不是目录
FileTest.exist?("赤点.png") false
FileTest.exist?("1.png") true
作者:
ONEWateR
时间:
2009-8-29 01:05
本帖最后由 ONEWateR 于 2009-8-29 01:07 编辑
好吧~ 敷衍一下~ - -
请pia之~
#==============================================================================
# ■ String
#------------------------------------------------------------------------------
# 字符串类。可处理任意长度的字节串。(追加编码转换的定义)
#==============================================================================
class String
#--------------------------------------------------------------------------
# ● 用来编码 Ruby 字符串、解码 unicode 的 两个 Windows API 函数
#--------------------------------------------------------------------------
@@MultiByteToWideChar = Win32API.new("kernel32", "MultiByteToWideChar", ['I', 'L', 'P', 'I', 'P', 'I'], 'I')
@@WideCharToMultiByte = Win32API.new("kernel32", "WideCharToMultiByte", ['I', 'L', 'P', 'I', 'P', 'I', 'P', 'P'], 'I')
#--------------------------------------------------------------------------
# ● 返回将 Ruby UTF-8 字符串对象(本身)编码为 unicode 后的字符串
#--------------------------------------------------------------------------
def to_unicode
len = @@MultiByteToWideChar.call(65001, 0, self, -1, 0, 0) << 1
buf =" " * len
# 65001: UTF-8 字符集编码(代码页)
@@MultiByteToWideChar.call(65001, 0, self, -1, buf, len)
return buf
end
#--------------------------------------------------------------------------
# ● 返回将编码为 unicode 的字符串对象(本身)解码为 UTF-8 后的字符串
#--------------------------------------------------------------------------
def to_UTF8
len = @@WideCharToMultiByte.call(65001, 0, self, -1, 0, 0, 0, 0)
buf =" " * len
@@WideCharToMultiByte.call(65001, 0, self, -1, buf, len, 0, 0)
# 去掉 '\0' 字符串结束符(因为转换之后仅仅用于 Ruby 字符串)
buf.slice!(-1, 1)
return buf
end
end
FindFirstFile = Win32API.new("kernel32", "FindFirstFileW", "PP", "L")
FindNextFile = Win32API.new("kernel32", "FindNextFileW", "LP", "I")
filenames = []
findFileData = " " * 592
hFindFile = FindFirstFile.call(
"*".to_unicode, findFileData)
while FindNextFile.call(hFindFile, findFileData) != 0
filenames.push(findFileData[44, 45 + 260 * 2].to_UTF8)
end
p filenames.include?("哈.ini")
复制代码
欢迎光临 Project1 (https://rpg.blue/)
Powered by Discuz! X3.1