声振论坛

 找回密码
 我要加入

QQ登录

只需一步,快速开始

查看: 1856|回复: 2

[共享资源] [原创]查找一个目录下的某一类型所有文件

[复制链接]
发表于 2007-12-4 14:57 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?我要加入

x
问题:如何找到某个文件夹下一种类型的所有文件的文件名,并保存到workspace的变量中。

解决要点:
key 1:使用dos命令dir可以列出所有的文件,dir *.m就可以列出所有扩展名为.m的文件,因此,可以考虑使用dos命令来解决。matlab中实现的命令如下
[status,result] = dos('dir *.m');
key 2: result是一个字符串,需要从中挑取出文件名来,使用正则表达式。
filelist=regexp(result,'\w*?\.m','match');
返回的filelist就是包含所有.m文件名的元胞数组(cell array)。
为了通用,改写成如下的函数形式:

  1. function filelist=somefilelist(dir,ext)
  2. % filelist=filelist=somefilelist(dir,ext)
  3. % pick up all files with extent name 'ext', and in the dictionary  % specified as 'dir'
  4. % Exampe: filelist=somefilelist('c:\matlab','m');
  5. % author Zhang Fujian.
  6. % email: zhangfujijan@gmail.com
  7. % Dec. 4, 2007

  8. if dir(length(dir))~='\'   dir=[dir,'\'];   end

  9. [status,result] = dos(['dir ',dir,'*.',ext]);
  10. filelist=regexpi(result,['\w*?\.',ext],'match');
复制代码


have fun!

[ 本帖最后由 sogooda 于 2007-12-4 15:00 编辑 ]

评分

1

查看全部评分

回复
分享到:

使用道具 举报

发表于 2007-12-4 15:17 | 显示全部楼层
直接用dir('*.fmt')就可以一个目录下的某一类型所有文件

使用正则表达式的那个不错:handshake

以前没有接触过,因此不怎么会用。如果楼主有将matlab正则表达式的资料希望可以共享下,越简单的越好:@D

[ 本帖最后由 花如月 于 2007-12-4 15:20 编辑 ]
发表于 2007-12-4 15:34 | 显示全部楼层
值得鼓励一下。不过貌似搞复杂了,dir 就可以达到目的。至于正则表达式的东西,google一下就有,如果不介意看英语,matlab 本身的帮助就有一大堆

评分

1

查看全部评分

您需要登录后才可以回帖 登录 | 我要加入

本版积分规则

QQ|小黑屋|Archiver|手机版|联系我们|声振论坛

GMT+8, 2024-5-6 19:02 , Processed in 0.075514 second(s), 22 queries , Gzip On.

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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