设为首页收藏本站|繁體中文

Project1

 找回密码
 注册会员
搜索
查看: 3326|回复: 6
打印 上一主题 下一主题

[已经解决] 如何提取一个文件夹目录下的所有文件名

[复制链接]

Lv1.梦旅人

梦石
0
星屑
85
在线时间
146 小时
注册时间
2011-8-14
帖子
70
跳转到指定楼层
1
发表于 2012-9-6 01:42:28 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式

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

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

x
如何提取一个文件夹目录下的所有文件名
如 玩家信息 目录下有 3个玩家信息
我需要在游戏中读取到目录下的这三个玩家信息,然后玩家可以进行选择

Lv4.逐梦者

梦石
0
星屑
6855
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

2
发表于 2012-9-6 10:20:53 | 只看该作者
# 取得  Graphics/System/ 目录下的所有文件  包括文件夹 得到的结果 names 是一个数组
names = Dir["Graphics/System/*"]
msgbox_p names
# 取得当前工作目录(默认为Game.exe所在目录)下的所有东西.包括文件夹
names = Dir["*"]
msgbox_p names
# 筛选只要后缀名为 .ini 的文件
names = Dir["*.ini"]
msgbox_p names

评分

参与人数 1梦石 +2 收起 理由
迷糊的安安 + 2 认可答案 附赠66RPG提供的精美好人卡一张^^.

查看全部评分












你知道得太多了

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
85
在线时间
146 小时
注册时间
2011-8-14
帖子
70
3
 楼主| 发表于 2012-9-6 15:20:30 | 只看该作者
后知后觉 发表于 2012-9-6 10:20
# 取得  Graphics/System/ 目录下的所有文件  包括文件夹 得到的结果 names 是一个数组
names = Dir["Graph ...

谢谢。那请问下,如何去掉后缀和前面的父目录呢
e.g.    others/fight1.data
   取后:fight1
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6855
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

4
发表于 2012-9-6 16:46:18 | 只看该作者
熊熊烈火雄壮 发表于 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"











你知道得太多了

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
85
在线时间
146 小时
注册时间
2011-8-14
帖子
70
5
 楼主| 发表于 2012-9-6 18:25:49 | 只看该作者
本帖最后由 熊熊烈火雄壮 于 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,该如何操作呢?
回复 支持 反对

使用道具 举报

Lv4.逐梦者

梦石
0
星屑
6855
在线时间
1666 小时
注册时间
2008-10-29
帖子
6710

贵宾

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

用 正则表达式

  1. /fight\/(.+)\.data/ =~ "fight/fight.data"
  2. msgbox_p $1
复制代码
$1就是括号里匹配出来的东西

点评

这就是正则表达式的方便之处,一边匹配一边取出子字符串  发表于 2012-9-6 19:38











你知道得太多了

回复 支持 反对

使用道具 举报

Lv1.梦旅人

梦石
0
星屑
85
在线时间
146 小时
注册时间
2011-8-14
帖子
70
7
 楼主| 发表于 2012-9-6 19:55:23 | 只看该作者
后知后觉 发表于 2012-9-6 19:22
用 正则表达式$1就是括号里匹配出来的东西

谢谢,学习了~
回复 支持 反对

使用道具 举报

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

本版积分规则

拿上你的纸笔,建造一个属于你的梦想世界,加入吧。
 注册会员
找回密码

站长信箱:[email protected]|手机版|小黑屋|无图版|Project1游戏制作

GMT+8, 2024-11-16 21:30

Powered by Discuz! X3.1

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表