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


測試文件夾為:

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,記錄修改信息。

修改后原來含有空格的文件名沒有空格了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM