楼主: 凡星有梦
1460 1

[MATLAB] [转]Matlab对文件夹下所有文件进行操作接口 [推广有奖]

  • 2关注
  • 20粉丝

已卖:106份资源

讲师

89%

还不是VIP/贵宾

-

威望
1
论坛币
7643 个
通用积分
5270.5463
学术水平
100 点
热心指数
87 点
信用等级
88 点
经验
7381 点
帖子
149
精华
2
在线时间
185 小时
注册时间
2013-8-26
最后登录
2025-11-23

楼主
凡星有梦 在职认证  发表于 2015-3-11 14:28:38 |AI写论文

+2 论坛币
k人 参与回答

经管之家送您一份

应届毕业生专属福利!

求职就业群
赵安豆老师微信:zhaoandou666

经管之家联合CDA

送您一个全额奖学金名额~ !

感谢您参与论坛问题回答

经管之家送您两个论坛币!

+2 论坛币

事情起因是这个样子的,三件事;

      一件是,之前一直用来下载漫画的软件是comicdown,结果之前,也算挺久之前的了,官方更新成了一个界面各种碉堡(相比于旧版本的comicdown),据说很好用的下载器,

      结果用了一下,好吧,其实不是黑,我想说真的不好用,各种不良的交互性,算了,这还不说,重点是下来的漫画还有些有问题,用手机或者pad打开就是什么状况呢?上面一部分,或多或少,是正常显示的,

      下面呢,就全是灰色的,准确点就是rgb=(192,192,192),以前的comicdown也会出现下载的漫画有损坏的状况,但是他的文件名会带有“下载失败”字样,你只要搜索“下载失败”这四个字,就可以把所有失败的拎出来,删掉,再打开下载器就可以重下一下缺少的,也就是被删除的,一般第二遍就能全部完成了,但是新的千寻漫画呢?他就是正常的文件名,除非你打开漫画,不然绝对不可能找得出来哪个坏了,然后我的“漫画”文件夹下n多部漫画,每部n卷,所以只好想个办法,全部文件一个一个用程序检测是不是顺坏了,好吧,除了吐槽千寻漫画外,我想说的就是,有个需求,需要找到一个大文件夹下所有符合满足特定条件的文件,然后对其进行操作。






第二件事则简单一些,就是因为某些原因,我需要把一个文件夹下的图片不是jpg格式的全部变成jpg,嗯,就是这么简单,说白了,也是上面这个需求是吧。。但是我之前一直用的那个转图片格式的居然不支持png,所以突然想用matlab里面的万能接口imread。。。

第三件,大家都知道的,对于歌曲,MP3格式,导入到设备中会显示歌曲名,但是不是文件名,因为文件名一般会有"1.XXX","1-XXX"这种,想删掉前面的数字,因为这样打开文件夹,键盘上按下前几个字母就可以很快的定位到歌曲,另外又想顺便把我8+G的music文件夹中重复的歌曲删掉,这样有时需要扫描全部文件和子文件夹。。。

所以几次下来,就顺手写个简单的matlab接口,有什么要做的就在接口那里写上对文件要进行什么样的处置就好了。。其实这个工作是超级简单的,写上来,也就是留个笔记,下次方便复制粘贴。。。以上!!
下面是代码:


Code:
  1. function DoAllFile(file_path)clc;if(file_path(end) ~= '\')
  2.    file_path = [file_path '\'];
  3. endInterator(file_path);
  4. function Interator(path)file_list = dir(path)
  5. ;for i = 1 : length(file_list)
  6.     if(strcmp(file_list(i).name,'.')||strcmp(file_list(i).name,'..'))
  7.        continue;
  8.     elseif(file_list(i).isdir)
  9.          new_path = [path  file_list(i).name '\'];
  10.          Interator(new_path);
  11.     else
  12.         new_path = [path  file_list(i).name];
  13.         DoWithFile(new_path);
  14.    endendfunction DoWithFile(path) %对path这个路径的文件要做什么在下面填写就可以了。。。
复制代码



比如说吧,我现在想对我漫画目录下的所有漫画进行压缩打包,就可以用下面代码:


  1. function ComicZip()clc;
  2. file_path = 'F:\漫画\';if(file_path(end) ~= '\')
  3.     file_path = [file_path '\'];
  4. endInterator(file_path,0);
  5. function Interator(path,depth)file_list = dir(path);
  6. for i = 1 : length(file_list)    if(strcmp(file_list(i).name,'.') | strcmp(file_list(i).name,'..'))
  7.         continue;
  8.     elseif(file_list(i).isdir)
  9.         new_path = [path file_list(i).name '\'];
  10.         if(depth == 2)
  11.           DoWithDirection(new_path,file_list(i).name);
  12.         else
  13.            Interator(new_path,depth+1);
  14.         end
  15.     else
  16.         continue;
  17.     endendfunction DoWithDirection(path,filename)disp(['正在打包  ' path ':']);
  18. zip([filename '.zip'],path);
  19. movefile([filename '.zip'],path(1:length(path)-1-length(filename)));
  20. rmdir(path,'s');
  21. disp(['删除  ' path ':']);
复制代码


二维码

扫码加我 拉你入群

请注明:姓名-公司-职位

以便审核进群资格,未注明则拒绝

关键词:MATLAB matla atlab 操作接口 Mat 文件夹 Matlab 操作接口

已有 2 人评分经验 论坛币 学术水平 热心指数 信用等级 收起 理由
niuniuyiwan + 100 + 100 + 5 + 5 + 5 精彩帖子
happy_287422301 + 60 精彩帖子

总评分: 经验 + 100  论坛币 + 160  学术水平 + 5  热心指数 + 5  信用等级 + 5   查看全部评分

本帖被以下文库推荐

个人主页:https://lixuan.xyz

沙发
niuniuyiwan 在职认证  发表于 2015-11-18 18:00:57
发帖不易,良苦用心 ,感谢楼主,感谢分享

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

本版微信群
加好友,备注jltj
拉您入交流群
GMT+8, 2025-12-23 19:29