1. 程式人生 > >MATLAB檢查指定路徑中的子文件夾中的文件名中是否帶有空格

MATLAB檢查指定路徑中的子文件夾中的文件名中是否帶有空格

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檢查指定路徑中的子文件夾中的文件名中是否帶有空格