天天看點

matlab如何更改檔案夾名稱,matlab 重命名檔案和檔案夾

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如何更改檔案夾名稱,matlab 重命名檔案和檔案夾

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(1.txt不存在了),實際上相當于改名 copyfile('2.txt', '22.txt'); % 把2.txt複制成22.txt(2.txt依然存在) movefile('11.txt', '1'); %把11.txt剪切到檔案夾1中 copyfile('22.txt', '2'); % 把22.txt複制到檔案夾2中

matlab如何更改檔案夾名稱,matlab 重命名檔案和檔案夾

一直用movefile重命名的總是覺得有點不對,速度很慢

movefile函數實際上幹的是用新檔案名複制一遍檔案,然後把舊的再删了。。。。

是以用這個做重命名在檔案特别多資料量特别大的時候其實是非常非常慢的。。。。

順便說一下,剪切也是大坑(但可能安全些)(下面說的都是在同一個盤符下操作,剪切檔案,不同的盤之間剪切檔案較慢,無提升)用movefile幹剪切的事。也是先複制過去再把原來的删了,這樣做隻有一個好處,安全——中途被打斷的話源檔案還在,但是遇上稍微大一點的檔案效率實在太低。

matlab如何更改檔案夾名稱,matlab 重命名檔案和檔案夾

clear allclcfolder_name=uigetdir;%手動打開要修改名稱的檔案夾的上一層檔案夾folder=dir(folder_name);oldname=cell(length(folder)-2,1);for ii=3:length(folder) oldname{ii-2}=folder(ii).name;end%提取出要修改檔案夾的名稱newname=cell(length(oldname),1);for ii=1:length(oldname) a=oldname{ii}; newname{ii}=a(2:end);%新的檔案夾名稱 movefile([folder_name'\' oldname{ii}],[folder_name'\'newname{ii}])​%利用movefile函數進行修改end

matlab如何更改檔案夾名稱,matlab 重命名檔案和檔案夾
matlab如何更改檔案夾名稱,matlab 重命名檔案和檔案夾

file = dir('*.bmp');len=length(file);for i = 1: len oldname=file(i).name; newname= strcat('RH_', oldname);% '!'的意思是調用系統函數,32是ASCII碼值,表示空格 eval(['!rename' 32 oldname 32newname]);end

matlab如何更改檔案夾名稱,matlab 重命名檔案和檔案夾

首先用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碼,表示空格,你也可以使用逗号代替

matlab如何更改檔案夾名稱,matlab 重命名檔案和檔案夾

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

matlab如何更改檔案夾名稱,matlab 重命名檔案和檔案夾

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檔案後執行

matlab如何更改檔案夾名稱,matlab 重命名檔案和檔案夾

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

matlab如何更改檔案夾名稱,matlab 重命名檔案和檔案夾

實際測試應用:

matlab如何更改檔案夾名稱,matlab 重命名檔案和檔案夾

%%%%%%%%%%%%%%批量修改檔案夾名稱%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=3:filenum% filename=fileDIR(p).name; %第p個子檔案夾的檔案夾名% path1=strcat(path,filename,'\');% fileDIR1=dir(strcat(path1,'*')); %第一層檔案夾1-50% filenum1=length(fileDIR1);% for q=3:filenum1% filename1=fileDIR1(q).name;% path2=strcat(path1,filename1,'\');% DIR=dir(strcat(path2,'*.bmp')); %擷取該子檔案夾中所有bmp格式的圖像% len=length(DIR);% %cd(path2);% if len>0% for i=0:2:len-1% name1=DIR(i+1).name;% name2=DIR(i+2).name;% movefile(name1,strcat(num2str(i/2),'_down.bmp'));% movefile(name2,strcat(num2str(i/2),'_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)-2,1);% for ii=3:length(folder)% oldname{ii-2}=folder(ii).name;%end% % %提取出要修改檔案夾的名稱% newname=cell(length(oldname),1);% for ii=1:length(oldname)% a=oldname{ii};% %newname{ii}=a(2:end);% %新的檔案夾名稱% movefile([folder_name '\' oldname{ii}],[folder_name'\'num2str(ii)])% %利用movefile函數進行修改%end%重命名檔案夾名稱clear allclcclose all;folder_name='G:\100萬采樣\5元采樣20000張\';fileDir=dir(folder_name); folderNum=length(fileDir); %第一級目錄 directionfor p=3:folderNum fileName=fileDir(p).name; path1=strcat(folder_name,fileName,'\'); fileDIR1=dir(strcat(path1,'*'));for ii=3:length(fileDIR1) movefile([path1'\' fileDIR1(ii).name],[path1'\'num2str(ii-2)])endend

matlab如何更改檔案夾名稱,matlab 重命名檔案和檔案夾