1、查看文件存在  dir()

若存在,返回文件信息

     dir(‘test.txt’) %查看当前目录是否存在test.txt文件
dir(‘C:\test.txt’) %查看指定目录是否存在test.txt文件
2、查看文件存在exist()
使用方法同dir
若不存在,返回0
若存在,则根据返回一个非0值,具体请help exist
3、文件重命名eval()
 matlab 中 strrep 函数可以更改文件扩展名
使用方法
eval(['!rename' , ‘,test.txt’ , ‘,test2.txt’]); 
注意后文件名前有个,(逗号)
网上有人说可以使用变量操作,eval(['!rename' , s, t]);
本人表示没有成功,不知道为什么
4、文件重命名movefile
可以使用变量,如:
movefile(s,t);

matlab中movefile和copyfile的重要用途

clear
clc cd('C:\Documents and Settings\Administrator\桌面\matlab\test'); % 设置当前目录
% 此时test文件夹中有:文件夹1, 文件夹2, 文件1.txt, 文件2.txt movefile('1.txt', '11.txt'); % 把1.txt剪切成11.txt(.txt不存在了),实际上相当于改名
copyfile('2.txt', '22.txt'); % 把2.txt复制成22.txt(.txt依然存在) movefile('11.txt', ''); % 把11.txt剪切到文件夹1中
copyfile('22.txt', ''); % 把22.txt复制到文件夹2中

一直用movefile重命名的总是觉得有点不对,速度很慢

movefile函数实际上干的是用新文件名复制一遍文件,然后把旧的再删了。。。。

所以用这个做重命名在文件特别多数据量特别大的时候其实是非常非常慢的。。。。

顺便说一下,剪切也是大坑(但可能安全些)(下面说的都是在同一个盘符下操作,剪切文件,不同的盘之间剪切文件较慢,无提升)用movefile干剪切的事。也是先复制过去再把原来的删了,这样做只有一个好处,安全——中途被打断的话源文件还在,但是遇上稍微大一点的文件效率实在太低。

clear all
clc
folder_name=uigetdir; % 手动打开要修改名称的文件夹的上一层文件夹
folder=dir(folder_name);
oldname=cell(length(folder)-,);
for ii=:length(folder)
oldname{ii-}=folder(ii).name;
end % 提取出要修改文件夹的名称
newname=cell(length(oldname),);
for ii=:length(oldname)
a=oldname{ii};
newname{ii}=a(:end); % 新的文件夹名称
movefile([folder_name '\' oldname{ii}],[folder_name '\' newname{ii}]) ​% 利用movefile函数进行修改
end
file = dir('*.bmp');
len = length(file);
for i = : len
oldname = file(i).name;
newname = strcat('RH_', oldname);
% '!'的意思是调用系统函数,32是ASCII码值,表示空格
eval(['!rename' oldname newname]);
end

首先用dir函数获得工作目录下所有bmp文件信息,返回的file是一个结构体,里面包含了文件名、修改时间等信息,我们用的就是第一个域名字name,接着获得bmp文件的个数,然后就是一个循环,用strcat函数将“RH_”与原文件名连接起来,然后重点就是这个eval函数的用法,查看eval函数的帮助可以知道,这个函数实际上就是执行将括号里表达式中的matlab代码(eval(EXPRESSION) evaluates the MATLAB code in the string EXPRESSION),“!”的意思是调用Windows系统函数(Linux下好像是将rename改为system),比如这里的rename函数,实际上eval括号里的意思就是这样,只不过是调用的系统函数,32是ASCII码,表示空格,你也可以使用逗号代替

clc;
clear all;
path='C:\\Users\\ranji\\Desktop\\hello\\';
file = dir(strcat(path,'*.txt'));
len = length(file);
for i = : len
oldname = file(i).name;
newname = strcat('RH_', num2str(i));
% '!'的意思是调用系统函数,32是ASCII码值,表示空格
%eval(['!rename' oldname newname]);
eval (['!rename', oldname, newname]);
end %未成功

Matlab如何创建文件夹

new_folder = 'C:/test'; % new_folder 保存要创建的文件夹,是绝对路径+文件夹名称

mkdir(new_folder);  % mkdir()函数创建文件夹;这里一定记得 new_folder = 'C:/test'; 中是斜杠‘/’,而不是反斜杠。否则会报错。

我们再看一个例子: 在top_folder下面创建一个resize文件夹

top_folder = 'C:/test'; % 第一层文件夹名称

mkdir(top_folder); % 创建第一层文件夹

second_folder = sprintf('%s/%s', top_folder, 'resize'); % 构造第二层文件夹名称

mkdir(second_folder); % 创建第二层文件夹

% 之后我们可以看到在 C:/test 文件夹下,多了一个 resize 文件夹。关于sprintf()函数的用法看下一章介绍。

% 注意以上代码一行行可拷贝到命令行执行,后者简历.m文件后执行

new_folder='C:/Users/ranji/Desktop/hello';
mkdir(new_folder);
send_folder=strcat(new_folder,'\','world');
mkdir(send_folder);

实际测试应用:

%%%%%%%%%%%%%%批量修改文件夹名称
% close all;clear all;clc;
% path='G:\100万采样\敦南CIS第四套\value-5\version-4\direction-0\'; %修改一级文件夹名称
% fileDIR=dir(path); %获取路径信息 %第0层文件夹direction
% filenum=length(fileDIR); %该文件夹下的子文件夹个数,从3开始
% for p=:filenum
% filename=fileDIR(p).name; %第p个子文件夹的文件夹名
% path1=strcat(path,filename,'\');
% fileDIR1=dir(strcat(path1,'*')); %第一层文件夹1-
% filenum1=length(fileDIR1);
% for q=:filenum1
% filename1=fileDIR1(q).name;
% path2=strcat(path1,filename1,'\');
% DIR=dir(strcat(path2,'*.bmp')); %获取该子文件夹中所有bmp格式的图像
% len=length(DIR);
%
% cd(path2);
% if len>
% for i=::len-
% name1=DIR(i+).name;
% name2=DIR(i+).name;
% movefile(name1,strcat(num2str(i/),'_down.bmp'));
% movefile(name2,strcat(num2str(i/),'_up.bmp'));
% end
% end
% end
% end % clear all
% clc
% %folder_name=uigetdir;
% folder_name='G:\100万采样\敦南CIS第四套\value-5\version-4\direction-0\';
% % 手动打开要修改名称的文件夹的上一层文件夹
% folder=dir(folder_name);
% oldname=cell(length(folder)-,);
% for ii=:length(folder)
% oldname{ii-}=folder(ii).name;
% end
%
% % 提取出要修改文件夹的名称
% newname=cell(length(oldname),);
% for ii=:length(oldname)
% a=oldname{ii};
% %newname{ii}=a(:end);
% % 新的文件夹名称
% movefile([folder_name '\' oldname{ii}],[folder_name '\' num2str(ii)])
% % 利用movefile函数进行修改
% end %重命名文件夹名称
clear all
clc
close all;
folder_name='G:\100万采样\5元采样20000张\';
fileDir=dir(folder_name);
folderNum=length(fileDir); %第一级目录 direction
for p=:folderNum
fileName=fileDir(p).name;
path1=strcat(folder_name,fileName,'\');
fileDIR1=dir(strcat(path1,'*')); for ii=:length(fileDIR1)
movefile([path1 '\' fileDIR1(ii).name],[path1 '\' num2str(ii-2)])
end
end

matlab 重命名文件和文件夹的更多相关文章

  1. Win10家庭版重命名Administrator用户文件夹

    需要将Windows系统默认的Administrator帐号文件夹改名为我们自定义的名称.. 但是Win10家庭版找不到组策略gpedit.msc 根据微软官方有关Win10各版本操作系统中对于组策略 ...

  2. ( 转)Ubuntu下创建、重命名、删除文件及文件夹,强制清空回收站方法

    Ubuntu下创建.重命名.删除文件及文件夹,强制清空回收站方法 mkdir 目录名 ——创建一个目录 rmdir 空目录名 ——删除一个空目录 rm 文件名 文件名 ——删除一个文件或多个文件 rm ...

  3. 如何在Linux下重命名多个文件

    在Linux中,当你想要改变一个文件名,使用mv命令就好了.然而mv不能使用通配符重命名多个文件.可以用sed.awk或者与xargs结合使用来处理多个文件的情况.然而,这些命令行即繁琐又不友好,并且 ...

  4. [Python] python3 文件操作:从键盘输入、打开关闭文件、读取写入文件、重命名与删除文件等

    1.从键盘输入 Python 2有两个内置的函数用于从标准输入读取数据,默认情况下来自键盘.这两个函数分别是:input()和raw_input(). Python 3中,不建议使用raw_input ...

  5. Linux命令技巧:如何在Linux下重命名多个文件

    我知道我可以用mv命令重命名文件.但是当我想重命名很多文件怎么办?如果为每个文件都这么做将会是很乏味的.有没有办法一次性重命名多个文件? 在Linux中,当你想要改变一个文件名,使用mv命令就好了.然 ...

  6. Python重命名和删除文件

    Python重命名和删除文件: rename(当前的文件名,新文件名): 将当前的文件名修改为新文件名 程序: # os.rename('旧名字',’新名字‘) import os os.rename ...

  7. [CentOs7]搭建ftp服务器(3)——上传,下载,删除,重命名,新建文件夹

    摘要 上篇文章介绍了如何为ftp添加虚拟用户,本篇将继续实践如何上传,下载文件. 上传 使用xftp客户端上传文件,如图所示 此时上传状态报错,查看详情 从错误看出是应为无法创建文件造成的.那么我们就 ...

  8. Java创建、重命名、删除文件和文件夹(转)

    Java的文件操作太基础,缺乏很多实用工具,比如对目录的操作,支持就非常的差了.如果你经常用Java操作文件或文件夹,你会觉得反复编写这些代码是令人沮丧的问题,而且要大量用到递归. 下面是的一个解决方 ...

  9. python学习笔记--文件重命名,删除及文件夹

    文件重命名 import os os.rename('123.txt','456.txt') 删除文件 >>> import os >>> os.remove('4 ...

随机推荐

  1. Spark-Core RDD行动算子

    1.reduce(func) 通过func函数聚集RDD 中的所有元素,先聚合分区内数据,再聚合分区间数据. scala> val rdd1 = sc.parallelize(1 to 100) ...

  2. Linux命令学习(0)

    作为一名前端,可能接触到linux的机会并不多,但这不代表就不需要学.对我而言,学习linux主要是为了方便部署我的项目到服务器,我并没有花时间去学这些,只是上网查怎么部署项目,然后按教程一步一步来, ...

  3. linux中忘记mysql用户root密码解决方案

    1.vim /etc/my.cnf[mysqld]skip-grant-tables ##追加此行,跳过权限表, 2.重启mysqlsystemctl restart mysqld 3.mysql 登 ...

  4. HDU 1594 find the max

    数序问题. 题意是说 一个数列 a1,a2,--ai,--an;  x=i , y = ai:找两个点斜率绝对值.!最大. 第一次没找绝对值,--认真读题. .. x 每次加1 . 仅仅须要找 相邻的 ...

  5. neo4j源码分析1-编译打包启动

    date: 2018-03-22 title: "neo4j源码分析1-编译打包启动" author: "邓子明" tags: - 源码 - neo4j - 大 ...

  6. vue手动制作地址选择器

    方法一:4级地址选择器(基于elementui   Cascader 级联选择器) 推荐 效果图: 组件源码: <template> <div class="select- ...

  7. 【React 6/100】 React原理 | setState | JSX语法转换 | 组件更新机制

    ****关键字 | setState | JSX语法转换 | 组件更新机制 组件更新机制 setState() 的两个作用 修改state 更新组件 过程:父组件重新渲染时,也会重新渲染子组件,但只会 ...

  8. MySQL事务提交与回滚

    提交 为了演示效果,需要打开两个终端窗口,使用同一个数据库,操作同一张表 step1:连接 终端1:查询商品分类信息 select * from goods_cates; step2:增加数据 终端2 ...

  9. tortoise svn回滚常用命令

    一.revert to this version 和 revert changes from this version的区别 假设SVN已有版本4814-4854:1.基于4837版本执行[rever ...

  10. GUI学习之十四——QKeySequenceEdit学习总结

    我们在前面总结了3种文本输入控件,这里有一种新的:QKeySequenceEdit,用作对快捷键的采集.结合其内部的API可以实现对自定义快捷键的设置.这节内容大致看一下就好了,我也不知道实际作用有哪 ...