主要内容

matlab.io.datastore.FileSet

用于收集数据存储中的文件的文件集

描述

matlab.io.datastore.FileSet对象帮助您在迭代遍历文件时处理大量文件集合。使用文件集对象一起使用DsFileReader对象来管理和从数据存储中读取文件。

创建

描述

例子

fs= matlab.io.datastore.FileSet (位置创建一个文件集对象用于基于指定位置的文件集合。

fs= matlab.io.datastore.FileSet (位置名称,值指定文件扩展名,是否包括子文件夹,或设置对象属性。可以指定多个名称-值对。名字用引号括起来。

输入参数

全部展开

中包含的文件或文件夹文件集对象,指定为字符向量、字符向量的单元格数组、字符串数组或结构。如果文件不在当前文件夹中,则位置必须为完整路径或相对路径。指定文件夹的子文件夹中的文件不会自动包含在文件集对象。

对于Hadoop来说®工作流,当您指定时位置作为一个结构,它必须包含字段文件名抵消,大小.此需求使您能够使用位置参数直接使用initializeDatastore方法matlab.io.datastore.HadoopLocationBased类。有关示例,请参见添加Ha金宝appdoop支持

指定时可以使用通配符(*)位置.指定此字符包括文件集对象中所有匹配文件或匹配文件夹中的所有文件。

如果文件在本地不可用,则文件或文件夹的完整路径必须是统一资源定位符(URL),例如
hdfs: / /主机名portnumber/path_to_file

数据类型:字符|细胞|字符串|结构体

名称-值对参数

的可选逗号分隔对名称,值参数。名字参数名称和价值对应的值。名字必须出现在引号内。您可以以任意顺序指定多个名称和值对参数Name1, Value1,…,的家

例子:fs = matlab.io.datastore.FileSet(location,' inclesubfolders ',true)

子文件夹包含标志,指定为数字或逻辑类型1真正的)或0).指定真正的在每个文件夹或中包含所有文件和子文件夹只包括每个文件夹中的文件。

例子:“IncludeSubfolders”,真的

文件扩展名,指定为字符向量、字符向量的单元格数组或字符串数组。可以使用空引号表示没有扩展名的文件。

如果“FileExtensions”没有指定,那么BlockedFileSet自动包含所有文件扩展名。

例子:“FileExtensions”、“jpg”

例子:FileExtensions, {' . txt ', ' . csv '}

属性

全部展开

可选文件系统根路径,指定为字符串数组或单元格数组。使用“AlternateFileSystemRoots”在本地机器上创建数据存储,但需要在另一台机器(可能是不同的操作系统)上访问和处理数据。此外,在使用并行计算工具箱™和MATLAB®并行服务器™,并且数据存储在您的本地机器上,不同平台云或集群机器上可用的数据副本,您必须使用“AlternateFileSystemRoots”关联根路径。

  • 若要关联一组等价的根路径,请指定“AlternateFileSystemRoots”作为一个字符串数组。例如,

    [" Z: \数据集”、“/ mynetwork /数据集”)

  • 若要关联多个与数据存储等效的根路径集,请指定“AlternateFileSystemRoots”作为包含多行的单元格数组,其中每行表示一组等效根路径。将单元格数组中的每一行指定为字符串数组或字符向量的单元格数组。例如:

    • 指定“AlternateFileSystemRoots”作为字符串数组的单元格数组。

      {[Z: \“数据集”、“/ mynetwork /数据集”);…[" Y: \数据集”、“/ mynetwork2 /数据集”、“年代:\数据集”)}

    • 另外,指定“AlternateFileSystemRoots”作为字符向量的单元格数组的单元格数组。

      {{“Z: \数据集”、“mynetwork /数据集”},…{“Y: \数据集”,“mynetwork2 /数据集”,年代:\数据集的}}

的价值“AlternateFileSystemRoots”必须满足这些条件:

  • 包含一行或多行,其中每行指定一组等效的根路径。

  • 每行指定多个根路径,每个根路径至少包含两个字符。

  • 根路径是唯一的,并且不是彼此的子文件夹。

  • 包含至少一个指向文件位置的根路径条目。

有关更多信息,请参见为不同机器或集群上的处理设置数据存储

例子:[" Z: \数据集”、“/ mynetwork /数据集”)

数据类型:字符串|细胞

此属性是只读的。

文件集对象中的文件数,指定为数值标量。

例子:fs。NumFiles

数据类型:

此属性是只读的。

中读取的文件数文件集对象,指定为数值标量。

例子:fs。NumFilesRead

数据类型:

此属性是只读的。

文件中的文件信息matlab.io.datastore.FileSet对象,返回为matlab.io.datastore.FileInfo具有这些属性的对象:

  • 文件名—文件的名称文件集对象。名称包含文件的完整路径。

  • 文件大小—文件大小(以字节为单位)。

有关特定文件的信息,请指定文件索引。例如,fs.FileInfo (2)返回第二个文件的文件名和文件大小。如果你打电话fs。FileInfo指定(:)或者不指定索引,返回所有文件的信息。

例子:fs.FileInfo (2)

对象的功能

hasNextFile 判断file-set中是否有另一个文件
nextfile 下一个文件或文件块的信息
hasPreviousFile 确定文件集是否有先前的文件
previousfile 文件集中前一个文件的信息
进步 确定已经读取了多少块或文件
maxpartitions 最大分区数
分区 分区文件集对象
子集 创建数据存储或文件集的子集
重置 重置文件设置对象

例子

全部折叠

创建一个文件集,并查询文件集中特定文件的信息。

创建一个文件集f年代用于文件的集合。

文件夹= {“accidents.mat”“airlineResults.mat”“census.mat”“earth.mat”
文件夹=1 x4单元格列1到3{'意外。垫的}{airlineResults……'}{普查。第4列{'earth.mat'}
fs = matlab.io.datastore.FileSet(文件夹)
fs =带有属性的文件集:NumFiles: 4 NumFilesRead: 0 FileInfo:显示所有4个文件的FileInfo

方法获取特定文件的信息nextfile函数或通过查询FileInfo属性并指定索引。获取连续文件的信息nextfile.例如,获取集合中前两个文件的信息。

File1 = nextfile(fs)
file1 = 1 x1 FileInfo文件名文件大小  ______________________________________________________________________________ ________ "/ mathworks /猛击/棒/ Bdoc21b /构建/ matlab工具箱/ matlab /演示/事故。垫“7343
File2 = nextfile(fs)
file2 = 1 x1 FileInfo文件名文件大小  ___________________________________________________________________________________ __________ "/ mathworks /猛击/棒/ Bdoc21b /构建/ matlab工具箱/ matlab /演示/ airlineResults。垫“1.5042 e + 05

查询文件信息属性获取关于集合中最后一个文件的信息。

lastfile = fs.FileInfo(4)
lastfile = 1 x1 FileInfo文件名文件大小  __________________________________________________________________________ ________ "/ mathworks /猛击/棒/ Bdoc21b /构建/ matlab工具箱/ matlab /演示/地球。垫“32522
R2020a中引入