Project1

标题: 如何提取一个文件夹目录下的所有文件名 [打印本页]

作者: 熊熊烈火雄壮    时间: 2012-9-6 01:42
标题: 如何提取一个文件夹目录下的所有文件名
如何提取一个文件夹目录下的所有文件名
如 玩家信息 目录下有 3个玩家信息
我需要在游戏中读取到目录下的这三个玩家信息,然后玩家可以进行选择
作者: 后知后觉    时间: 2012-9-6 10:20
# 取得  Graphics/System/ 目录下的所有文件  包括文件夹 得到的结果 names 是一个数组
names = Dir["Graphics/System/*"]
msgbox_p names
# 取得当前工作目录(默认为Game.exe所在目录)下的所有东西.包括文件夹
names = Dir["*"]
msgbox_p names
# 筛选只要后缀名为 .ini 的文件
names = Dir["*.ini"]
msgbox_p names

作者: 熊熊烈火雄壮    时间: 2012-9-6 15:20
后知后觉 发表于 2012-9-6 10:20
# 取得  Graphics/System/ 目录下的所有文件  包括文件夹 得到的结果 names 是一个数组
names = Dir["Graph ...

谢谢。那请问下,如何去掉后缀和前面的父目录呢
e.g.    others/fight1.data
   取后:fight1
作者: 后知后觉    时间: 2012-9-6 16:46
熊熊烈火雄壮 发表于 2012-9-6 15:20
谢谢。那请问下,如何去掉后缀和前面的父目录呢
e.g.    others/fight1.data
   取后:fight1 ...

File.basename(filename[, suffix])
Returns the final slash-delimited component of filename. If suffix is supplied and is identical to the end of filename, filename is returned without the suffix.

p File.basename("ruby/ruby.c")        # => "ruby.c"
p File.basename("ruby/ruby.c", ".c")  # => "ruby"
p File.basename("ruby/ruby.c", ".*")  # => "ruby"
p File.basename("ruby/ruby.exe", ".*")  # => "ruby"

作者: 熊熊烈火雄壮    时间: 2012-9-6 18:25
本帖最后由 熊熊烈火雄壮 于 2012-9-6 18:28 编辑
后知后觉 发表于 2012-9-6 16:46
File.basename(filename[, suffix])
Returns the final slash-delimited component of filename. If suf ...


非常感谢。
在你回答前,用很麻烦的 split/\//[1].split(/\./)[0]实现了,
您的这方法对文件名操作很方便
但我更想知道如何从一句话当中截取一小段文字
就比如刚才的 "fight/fight.data" 作为字符串,从中取出fight,该如何操作呢?

作者: 后知后觉    时间: 2012-9-6 19:22
熊熊烈火雄壮 发表于 2012-9-6 18:25
非常感谢。
在你回答前,用很麻烦的 split/\//[1].split(/\./)[0]实现了,
您的这方法对文件名操作很方便 ...

用 正则表达式

  1. /fight\/(.+)\.data/ =~ "fight/fight.data"
  2. msgbox_p $1
复制代码
$1就是括号里匹配出来的东西
作者: 熊熊烈火雄壮    时间: 2012-9-6 19:55
后知后觉 发表于 2012-9-6 19:22
用 正则表达式$1就是括号里匹配出来的东西

谢谢,学习了~




欢迎光临 Project1 (https://rpg.blue/) Powered by Discuz! X3.1