Matlab实现获取文件夹下所有指定后缀的文件

目录
  • 1. 要求
  • 2. 代码
  • 3. 参考

1. 要求

获取指定文件夹下(包含子文件夹),所有指定后缀(如txt)的文件路径(即文件所在目录+文件名),返回一个字符串数组。

2. 代码

获取C:/Users/Administrator/Desktop文件夹下(包含子文件夹)的所有.m文件

clear
dirOutput = dir('C:/Users/Administrator/Desktop/**/*.m');
folder = string({dirOutput.folder}');
file = string({dirOutput.name}');
filepath = strcat(folder, '\', file);

获取C:/Users/Administrator/Desktop文件夹下(不包含子文件夹)的所有.m文件

clear
dirOutput = dir('C:/Users/Administrator/Desktop/*.m');
folder = string({dirOutput.folder}');
file = string({dirOutput.name}');
filepath = strcat(folder, '\', file);

封装成函数。调用时若输入两个参数,则默认搜索子文件夹

function filepath = getFilesPath(baseDir, ext, findSubfile)
if nargin == 2  % 判断输入的参数是否为2
    findSubfile = true;
end
if findSubfile
    dirOutput = dir([baseDir '/**/*.' ext]);
else
    dirOutput = dir([baseDir '/*.' ext]);
end
folder = string({dirOutput.folder}');
file = string({dirOutput.name}');
filepath = strcat(folder, '\', file);
end

调用方法

getFilesPath('C:/Users/Administrator/Desktop', 'm')

结果展示

3. 参考

未仔细学习dir()函数之前

本文介绍一种通过MATLAB获取当前文件夹下所有文件名称的方法,包含子文件夹内的文件名称,请参考。

主要用到的函数包括uigetdir()、dir()。

AidDir = uigetdir();     % 通过交互的方式选择一个文件夹
if AidDir == 0             % 用户取消选择
    fprintf('Please Select a New Folder!\n');
else
    ParentFolder = dir(AidDir);    % 获取当前文件夹下的信息
    AllFile = struct;            % 建立空结构体
    AllFile = GetAllFile(ParentFolder,AllFile);
    if isempty(fieldnames(AllFile))
        fprintf('There are no files in this folder!\n');
    else    % 当前文件夹下有文件,反馈文件数量
        fprintf('Number of Files: %i \n',size(AllFile,2));
    end
end
function [AllFileStruct] = GetAllFile(ParentFolder,AllFile)
AllFileStruct = AllFile;
if isempty(fieldnames(AllFile))
    FileNum = 0; % 用于统计文件数量
else
    FileNum = size(AllFileStruct,2);
end
try
    %从第3个开始是文件,如果报错,则表明当前文件夹没有文件,运行catch
    for i = 3:length(ParentFolder)
        if ParentFolder(i).isdir == 1 % 当前是文件夹
            SubFolder = [ParentFolder(i).folder,'\',ParentFolder(i).name];
            Temp = dir(SubFolder);
            AllFileStruct = GetAllFile(Temp,AllFileStruct); % 函数递归
            FileNum = size(AllFileStruct,2);
        else
            FileNum = FileNum + 1;
            %通过结构体可以存储多种数据,本文仅以文件名称为例
            AllFileStruct(FileNum).name = ParentFolder(i).name;
        end
    end
catch
end
end

最后通过查看AllFile变量即可获取当前文件夹下所有文件名称。

仔细学习dir()函数之后

先放代码:

AidDir = uigetdir();     % 通过交互的方式选择一个文件夹
if AidDir == 0             % 用户取消选择
    fprintf('Please Select a New Folder!\n');
else
    cd(AidDir)
    RawFile = dir('**/*.*'); %主要是这个结构,可以提取所有文件
    AllFile = RawFile([RawFile.isdir]==0);
    if isempty(fieldnames(AllFile))
        fprintf('There are no files in this folder!\n');
    else    % 当前文件夹下有文件,反馈文件数量
        fprintf('Number of Files: %i \n',size(AllFile,1));
    end
end

没了。。。。不需要画蛇添足。。。。

dir()函数以n×1结构体数组形式返回,其中n是dir()函数返回的文件和文件夹的数量,下表中显示了结构体中的字段。

字段名称 说明
name 文件或文件夹名称 char
folder 文件或文件夹的位置 char
date 修改日期时间戳 char
bytes 文件大小(以字节为单位) double
isdir 如果名称为文件夹,则为1;如果名称为文件,则为0 logical
datenum 修改日期是一个日期序列值 double

提取指定扩展名的文件dir('**/*.m')

到此这篇关于Matlab实现获取文件夹下所有指定后缀的文件的文章就介绍到这了,更多相关Matlab获取指定后缀文件内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python获取指定路径下所有指定后缀文件的方法

    本文实例讲述了python获取指定路径下所有指定后缀文件的方法.分享给大家供大家参考.具体实现方法如下: # 获取指定路径下所有指定后缀的文件 # dir 指定路径 # ext 指定后缀,链表&不需要带点 或者不指定.例子:['xml', 'java'] def GetFileFromThisRootDir(dir,ext = None): allfiles = [] needExtFilter = (ext != None) for root,dirs,files in os.walk(dir

  • C#遍历文件夹获取指定后缀名文件

    本文实例为大家分享了C#遍历文件夹获取指定后缀名文件的具体代码,供大家参考,具体内容如下 问题描述: 项目需要,要进行某文件夹下所有shp数据的读取 解决方法: using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.

  • Asp.net 获取指定目录下的后缀名为".doc" 的所有文件名和文件路径

    c#核心代码: 复制代码 代码如下: DirectoryInfo dir = new DirectoryInfo(strPath); foreach (FileInfo fi in dir.GetFiles("*.doc")) { if (fi.FullName.EndsWith(".doc")) // 将 docx 类型的文件过滤掉 { // 这个 fi 就是你要的 doc 文件 Console.WriteLine(fi.Name); } }

  • Matlab实现获取文件夹下所有指定后缀的文件

    目录 1. 要求 2. 代码 3. 参考 1. 要求 获取指定文件夹下(包含子文件夹),所有指定后缀(如txt)的文件路径(即文件所在目录+文件名),返回一个字符串数组. 2. 代码 获取C:/Users/Administrator/Desktop文件夹下(包含子文件夹)的所有.m文件 clear dirOutput = dir('C:/Users/Administrator/Desktop/**/*.m'); folder = string({dirOutput.folder}'); file

  • python实现指定文件夹下的指定文件移动到指定位置

    本文主要是写了一个将指定文件夹下的指定文件类型移动到指定位置,具体内容如下 # coding:utf-8 import os import shutil import sys reload(sys) sys.setdefaultencoding('utf8') # print os.getcwd() # 有些文件夹下面有很多文件夹,每个文件夹下面有很多视频文件,现在通过脚本,将文件夹下面的所有文件转移到一个目录下面 # 统计访问的文件夹数量及文件数量 countNum = [0, ] count

  • java实现输出文件夹下某个格式的所有文件实例代码

    package file; import java.io.File; /** * 输出某个文件夹下所有某个格式的文件 * @author hasee * */ public class Demo2 { public static void main(String[] args) { getTxtName("d:/a",".jpg"); } public static void getTxtName(String path,String suffix) { //判断文

  • bat自动删除指定文件夹下前几天的文件的代码

    复制代码 代码如下: @echo off set d=%date:~0,10% mshta vbscript:createobject("scripting.filesystemobject").opentextfile("wind.txt",2,true).writeline(dateadd("d",-2,"%d%"))(window.close) for /f %%m in (wind.txt) do (set tt=%%

  • Java实现的模糊匹配某文件夹下的文件并删除功能示例

    本文实例讲述了Java实现的模糊匹配某文件夹下的文件并删除功能.分享给大家供大家参考,具体如下: package com.wyebd.gis; import java.io.File; /** * @Title: DelFiles.java * @Package com.wyebd.gis * @Description: * @author lisr * @date Mar 7, 2012 5:36:03 PM * @version V1.0 */ public class DelFiles {

  • 使用Python遍历文件夹实现查找指定文件夹

    目录 1. 文件夹结构 2. 查找指定文件夹下指定文件 3. 查找指定文件夹下所有相同名称的文件 4. 查找指定文件夹下所有相同后缀名的文件 1. 文件夹结构 指定文件夹:E:/Code/Python/test 指定文件:test.txt 指定文件夹下的目录及文件: 文件夹a: a.txt test.txt 文件夹txt: test.txt 文件b.txt test.py test.txt 2. 查找指定文件夹下指定文件 import os # 查找该层文件夹下指定文件 def search_f

  • PowerShell统计文件夹下文件个数的方法

    计算一个文件夹下面的文件个数是一件很容易的事情,但看到这篇文章之前,还从来没有想过计算一下文件个数还有这么多学问在里头. 我们这里有两种方法来计算文件夹下的文件个数,下面分别展示详细的代码来计算windows目录下的文件个数. 1.使用Get-ChildItem来得到所有的子文件夹和文件,然后再选取出所有的文件,再使用Measure-Object,最后再从Measure-Object的结果中使用Select-Object的ExpandProperty参数来计算出个数.听起来就有点复杂,下面看看代

  • asp.net 获取指定文件夹下所有子目录及文件(树形)

    #region 获取指定文件夹下所有子目录及文件(树形)         /****************************************          * 函数名称:GetFoldAll(string Path)          * 功能说明:获取指定文件夹下所有子目录及文件(树形)          * 参    数:Path:详细路径          * 调用示列:          *           string strDirlist = Server.M

  • python实现批量获取指定文件夹下的所有文件的厂商信息

    本文实例讲述了python实现批量获取指定文件夹下的所有文件的厂商信息的方法.分享给大家供大家参考.具体如下: 功能代码如下: import os, string, shutil,re import pefile import codecs, sys import wx import struct #输出中打印Unicode字符 #sys.stdout = codecs.lookup('utf-8')[-1](sys.stdout) def addToDict(theDict,PEfile_Pa

随机推荐