AidDir = uigetdir(); % 通过交互的方式选择一个文件夹
if AidDir == 0 % 用户取消选择
fprintf('Please Select a New Folder!\n');
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));
没了。。。。不需要画蛇添足
。。。。
dir()
函数以n×1
结构体数组形式返回,其中n
是dir()
函数返回的文件和文件夹的数量,下表中显示了结构体中的字段。
字段名称 | 说明 | 类 |
---|
name | 文件或文件夹名称 | char |
folder | 文件或文件夹的位置 | char |
date | 修改日期时间戳 | char |
bytes | 文件大小(以字节为单位) | double |
isdir | 如果名称为文件夹,则为1;如果名称为文件,则为0 | logical |
datenum | 修改日期是一个日期序列值 | double |
提取指定扩展名的文件dir('**/*.m')
。
需要写一个MATLAB的小程序,其中需要指定一个文件夹,返回这个文件夹下所有文件夹的名字,以及文件夹的个数。代码如下:function [names,class_num] = GetFiles()
files = dir('data\多类样本\');
size0 = size(files);
length = size0(1);
names = files(3:length);
class_num
MATLAB读取文件夹下特定类型格式文件的文件名并读取该格式文件的数据
利用代码对大量数据进行自动批处理时,首先需要获取该数据存放的文件夹(文件夹路径),然后获取该文件夹下某一类型数据所有的文件名,最后通过特定的数据读取代码读取数据进行自动批处理。这里以.txt文本类型作为示例(代码块中%后为注释内容)。
第一步:获取文件夹下某类型数据的所有文件名
主要包括三个步骤:
设置数据存放的文件夹路径;...
注意返回的files是结构数组。每一个文件为一个结构体,有name,folder,date,bytes,isdir,datenum字段。
因此可通过filenames(i).name来获取文件名
目的:获取当前文件夹下的特定文件名,比如后缀为.mat
filenames = dir('*.m
start_path = 'C:\'; % 设置默认文件夹
folder_path = uigetdir(start_path, 'select a folder:'); % 通过UI界面选择想要读取的文件夹
file_list = dir(folder_pat