主要内容

matlab.io.datastore.DsFileSet类

包:matlab.io.datastore

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

描述

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

建设

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

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

输入参数

全部展开

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

特别是对于Hadoop®工作流,当你指定时位置作为一个结构体,它必须包含字段文件名抵消,大小。此需求使您能够使用位置直接与initializeDatastore方法matlab.io.datastore.HadoopLocationBased类。使用示例请参见增加对H金宝appadoop的支持

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

如果文件在本地不可用,那么文件或文件夹的完整路径必须是统一资源定位符(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”必须满足以下条件:

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

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

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

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

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

例子:[" 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中引入