主要内容

matlab.io.datastore.DsFileSet类

包:matlab.io.datastore

用于数据存储中文件集合的文件集对象

描述

DsFileSet对象帮助您管理大型文件集合的迭代处理。使用DsFileSet对象一起使用DsFileReader对象来管理和从数据存储中读取文件。

建设

fs= matlab.io.datastore.DsFileSet (位置返回一个DsFileSet对象获取文件的集合位置

fs= matlab.io.datastore.DsFileSet (位置名称,值属性的附加参数DsFileSet对象,使用一个或多个名称-值对参数。的名字Also可以是属性名和价值对应的值。的名字必须出现在单引号内().可以以任意顺序指定多个名值对参数Name1, Value1,…,的家

输入参数

全部展开

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

通常对于Hadoop来说®当您指定工作流时位置作为结构体,它必须包含字段文件名抵消,大小.该要求使您能够使用位置直接与initializeDatastore的方法matlab.io.datastore.HadoopLocationBased类。示例请参见增加对H万博1manbetxadoop的支持

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

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

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

名称-值参数

指定可选参数对为Name1 = Value1,…,以=家,在那里的名字参数名称和价值对应的值。名-值参数必须出现在其他参数之后,但对的顺序并不重要。

在R2021a之前,名称和值之间用逗号隔开,并括起来的名字在报价。

例子:FileExtensions,{“jpg”、“.tif”}包含的所有文件jpg.tif扩展文件集对象。

文件扩展名,指定为逗号分隔的对,由“FileExtensions”还有一个字符向量,字符向量的单元格数组,或者字符串。您可以使用空引号表示没有扩展名的文件。

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

例子:“FileExtensions”、“jpg”

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

数据类型:字符|细胞|字符串

子文件夹包含标志,指定为逗号分隔的对,由“IncludeSubfolders”而且真正的.指定真正的将所有文件和子文件夹包含在每个文件夹或只包括每个文件夹中的文件。

例子:“IncludeSubfolders”,真的

数据类型:逻辑|

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

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

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

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

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

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

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

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

的价值“AlternateFileSystemRoots”必须满足以下条件:

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

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

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

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

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

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

数据类型:字符串|细胞

属性

全部展开

此属性是只读的。

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

例子:fs。NumFiles

数据类型:

此属性是只读的。

分割大小,指定为“文件”或者一个数字标量。

赋给的值FileSplitSize对象的输出nextfile方法。

  • 如果FileSplitSize“文件”,然后nextfile方法返回具有的表文件名文件大小抵消,SplitSize.的价值SplitSize等于文件大小

  • 如果FileSplitSize是一个数值标量n,然后nextfile方法返回文件名文件大小抵消,SplitSize.的价值SplitSize等于FileSplitSize.此信息用于读取n文件的字节数。的后续调用nextfile方法返回信息以帮助读取下一个n相同文件的字节,直到文件结束。

例子:“FileSplitSize”,20

数据类型:|字符

方法

hasfile 确定文件集对象中是否有更多文件可用
maxpartitions 最大分区数
nextfile 关于下一个文件或文件块的信息
分区 分区文件集对象
子集 创建数据存储或文件集的子集
重置 重置文件集对象
解决 文件集对象中所有文件的信息

例子

全部折叠

创建一个文件集对象,每次获取一个文件的文件信息,或者获取文件集对象中所有文件的信息。

对象创建一个文件集对象.mat来自演示文件夹中。

文件夹= fullfile(matlabroot,“工具箱”matlab的“演示”);fs = matlab.io.datastore.DsFileSet(文件夹,...“IncludeSubfolders”,真的,...“FileExtensions”“.mat”);

从文件集对象中获取第一个和第二个文件的信息。

fTable1 = nextfile(fs);%第一个文件fTable2 = nextfile(fs);%秒文件

通过每次获取一个文件的信息来获取关于所有文件的信息,并将信息收集到一个表中。

ft = cell(fs.NumFiles,1);%使用电池的效率I = 1;重置(fs);%重置为文件集的开头Hasfile (fs) ft{i} = nextfile(fs);I = I + 1;结束allFiles = vertcat(ft{:});

或者,同时获取所有文件的信息。

Allfiles = resolve(fs);

提示

  • 如果您使用DsFileSet对象作为自定义数据存储中的属性,然后实现copyElement方法。实现copyElement方法使您能够创建数据存储对象的深度副本。有关更多信息,请参见自定义拷贝操作.的示例实现copyElement方法,请参阅开发自定义数据存储

版本历史

在R2017b中引入