MATLAB檢查指定路徑中的子文件夾中的文件名中是否帶有空格
阿新 • • 發佈:2017-07-20
atl num 換行 pre col .com 輸出 size 文件的
測試文件夾為:
clear;close all;clc; %% %程序實現的功能 %檢查指定路徑中的子文件夾中的文件名中是否帶有空格,並去掉文件名中的空格 %% %程序中用到的之前不清楚的函數如下 %1)strfind(a,b):即找a中是否有b,如果a中有b,則輸出b的位置序號。沒有輸出空數組 %2)isempty(a):判斷數組是否為空 %3)strrep(a,b,c):就是把a中所有出現的b換為c %4)movefile(a,b):a移動為b,如C:\test1.jpg移動為C\test2.bmp %% tic; disp(‘程序開始執行‘);%%%%%%需要更改的參數(即文件夾路徑)%%%%%%%%%%%%%%%%%%%%%%%%%% path=‘C:\Users\yangsu\Desktop\test2‘; %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%% count=0;%用於統計總共找到幾個文件名錯誤的文件 dirList=dir(path);%讀取文件夾列表,這種方式讀取會保留原文件.(在結構體中第一個)和上一層目錄..(在結構體第二個) countList=length(dirList);%文件夾個數 fid = fopen([path,‘\‘,‘errorlist.txt‘], ‘w‘);%打開數據文件夾時,對應的錯誤文件名輸出列表 for numList=3:countList%文件夾從3開始 % if(length(dirList(numList).name)>=2)%根據這個過濾掉在此文件夾可能存在的txt文件 % continue; % end fileName=dir([path,‘\‘,dirList(numList).name]);%讀取子文件夾 fileSum=length(fileName);%統計子文件夾中的文件個數 disp([‘開始搜索文件夾‘,dirList(numList).name]); for fileNum=3:fileSum%文件從3開始 judge=strfind(fileName(fileNum).name,‘ ‘); if isempty(judge) continue; else fprintf(fid,‘%s‘, ‘找到的含有空格的文件為:‘); fprintf(fid,‘%s‘, [dirList(numList).name,‘/‘,fileName(fileNum).name]);%輸入:子文件/圖片名稱 fprintf(fid,‘\n‘);%換行 count=count+1; disp([‘找到一個帶有空格的文件,文件完整路徑為‘,‘ ‘,dirList(numList).name,‘/‘,fileName(fileNum).name]); %後來想到添加的功能找到了帶有空格的文件,把這個文件的文件名中的空格去掉作為一個新的文件名保存 newFileName=strrep(fileName(fileNum).name,‘ ‘,‘‘); fprintf(fid,‘%s‘, ‘修改後的文件為:‘); fprintf(fid,‘%s‘, [dirList(numList).name,‘/‘,newFileName]);%輸入:子文件/圖片名稱 fprintf(fid,‘\n‘);%換行 fprintf(fid,‘\n‘);%換行 fulloriginalname=[path,‘\‘,dirList(numList).name,‘\‘,fileName(fileNum).name]; fullchangename=[path,‘\‘,dirList(numList).name,‘\‘,newFileName]; movefile(fulloriginalname,fullchangename); disp([‘去除文件名中的空格後,文件完整路徑為‘,‘ ‘,dirList(numList).name,‘/‘,newFileName]); disp(‘ ‘); end end end fclose(fid);%關閉文本文件 fclose(‘all‘);%關閉所有連接,防止沒關掉的情況 disp([‘程序執行完畢‘,‘總共找到‘,‘ ‘,num2str(count),‘ ‘,‘個文件名中帶有空格的文件‘]); toc;
matlab輸出窗口:
並生成一個errorlist.txt,記錄修改信息。
修改後原來含有空格的文件名沒有空格了。
MATLAB檢查指定路徑中的子文件夾中的文件名中是否帶有空格