查看: 1917|回复: 3

[已经解决] 关于FileTest.exist?(filename)

  [复制链接]

清纯红

梦石
0
星屑
61
在线时间
65 小时
注册时间
2009-7-23
回帖
955

贵宾

发表于 2009-8-28 23:45:17 | 显示全部楼层 |阅读模式

加入我们,或者,欢迎回来。

您需要 登录 才可以下载或查看,没有账号?注册会员

×
本帖最后由 赤点 于 2009-9-5 01:31 编辑

FileTest.exist?(filename)
filename如果是中文名好像就检测不到了
有什么办法可以解决?
就算痛也要做,宅必备,宅人的必备网站

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
回帖
3622
发表于 2009-8-28 23:49:05 | 显示全部楼层
这个……紫苏前辈回答过~
丢个传送门
http://rpg.blue/viewthread.php?tid=128127&highlight=
回复

使用道具 举报

清纯红

梦石
0
星屑
61
在线时间
65 小时
注册时间
2009-7-23
回帖
955

贵宾

 楼主| 发表于 2009-8-28 23:53:11 | 显示全部楼层
我要的是文件不是目录
FileTest.exist?("赤点.png")  false

FileTest.exist?("1.png")  true
就算痛也要做,宅必备,宅人的必备网站
回复

使用道具 举报

B

梦石
0
星屑
50
在线时间
26 小时
注册时间
2007-8-26
回帖
3622
发表于 2009-8-29 01:05:19 | 显示全部楼层
本帖最后由 ONEWateR 于 2009-8-29 01:07 编辑

好吧~ 敷衍一下~ - -
请pia之~
  1. #==============================================================================
  2. # ■ String
  3. #------------------------------------------------------------------------------
  4. #  字符串类。可处理任意长度的字节串。(追加编码转换的定义)
  5. #==============================================================================

  6. class String
  7.   #--------------------------------------------------------------------------
  8.   # ● 用来编码 Ruby 字符串、解码 unicode 的 两个 Windows API 函数
  9.   #--------------------------------------------------------------------------
  10.   @@MultiByteToWideChar = Win32API.new("kernel32", "MultiByteToWideChar", ['I', 'L', 'P', 'I', 'P', 'I'], 'I')
  11.   @@WideCharToMultiByte = Win32API.new("kernel32", "WideCharToMultiByte", ['I', 'L', 'P', 'I', 'P', 'I', 'P', 'P'], 'I')
  12.   #--------------------------------------------------------------------------
  13.   # ● 返回将 Ruby UTF-8 字符串对象(本身)编码为 unicode 后的字符串
  14.   #--------------------------------------------------------------------------
  15.   def to_unicode
  16.     len = @@MultiByteToWideChar.call(65001, 0, self, -1, 0, 0) << 1
  17.     buf =" " * len
  18.     # 65001: UTF-8 字符集编码(代码页)
  19.     @@MultiByteToWideChar.call(65001, 0, self, -1, buf, len)
  20.     return buf
  21.   end
  22.   #--------------------------------------------------------------------------
  23.   # ● 返回将编码为 unicode 的字符串对象(本身)解码为 UTF-8 后的字符串
  24.   #--------------------------------------------------------------------------
  25.   def to_UTF8
  26.     len = @@WideCharToMultiByte.call(65001, 0, self, -1, 0, 0, 0, 0)
  27.     buf =" " * len
  28.     @@WideCharToMultiByte.call(65001, 0, self, -1, buf, len, 0, 0)
  29.     # 去掉 '\0' 字符串结束符(因为转换之后仅仅用于 Ruby 字符串)
  30.     buf.slice!(-1, 1)
  31.     return buf
  32.   end
  33. end

  34. FindFirstFile = Win32API.new("kernel32", "FindFirstFileW", "PP", "L")
  35. FindNextFile = Win32API.new("kernel32", "FindNextFileW", "LP", "I")

  36. filenames = []
  37. findFileData = " " * 592

  38. hFindFile = FindFirstFile.call(
  39. "*".to_unicode, findFileData)

  40. while FindNextFile.call(hFindFile, findFileData) != 0
  41.   filenames.push(findFileData[44, 45 + 260 * 2].to_UTF8)
  42. end

  43. p filenames.include?("哈.ini")
复制代码
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

Powered by Discuz! X5.0 © 2001-2026 Discuz! Team.

在本版发帖返回顶部