matlab.io.datastore.FileSet
数据存储中文件集合的文件集
说明
matlab.io.datastore.FileSet 对象可帮助您在以迭代方式遍历文件时处理大型文件集合。可将 FileSet 对象和 DsFileReader 对象结合使用,来管理和读取数据存储中的文件。
创建对象
描述
指定文件扩展名、是否包括子文件夹或设置对象属性。您可以指定多个名称-值对组。用引号将名称括起来。fs = matlab.io.datastore.FileSet(location,Name,Value)
输入参量
要包括在 FileSet 对象中的文件或文件夹,指定为字符向量、字符向量元胞数组、字符串数组或结构体。如果这些文件不在当前文件夹中,则 location 必须是完整或相对路径。指定文件夹的子文件夹中的文件不会自动包括在 FileSet 对象中。
通常,对于 Hadoop® 工作流来说,如果您将 location 指定为结构体,则它必须包含 FileName、Offset 和 Size 字段。此要求使您可以将 location 参量直接用于 matlab.io.datastore.HadoopLocationBased 类的 initializeDatastore 方法。有关示例,请参阅Add Support for Hadoop。
指定 location 时可以使用通配符 (*)。指定此字符会将所有匹配的文件或者匹配文件夹中的所有文件都包括在文件集对象中。
如果文件在本地不可用,则文件或文件夹的完整路径必须为统一资源定位器 (URL),例如
hdfs://。hostname:portnumber/path_to_file
数据类型: char | cell | string | struct
名称-值参数
以 Name1=Value1,...,NameN=ValueN 的形式指定可选参量对组,其中 Name 是参量名称,Value 是对应的值。名称-值参量必须出现在其他参量之后,但对各个参量对组的顺序没有要求。
在 R2021a 之前,使用逗号分隔每个名称和值,并用引号将 Name 引起来。
示例: fs = matlab.io.datastore.FileSet(location,'IncludeSubfolders',true)
子文件夹包含标志,指定为数值或逻辑值 1 (true) 或 0 (false)。指定 true 可包含每个文件夹中的所有文件和子文件夹,指定 false 则仅包含每个文件夹中的文件。
示例: 'IncludeSubfolders',true
文件扩展名,指定为字符向量、字符向量元胞数组或字符串数组。可以使用空引号 '' 表示不带扩展名的文件。
如果未指定 'FileExtensions',则 BlockedFileSet 自动包含所有文件扩展名。
示例: 'FileExtensions','.jpg'
示例: 'FileExtensions',{'.txt','.csv'}
属性
备用文件系统根路径,指定为字符串数组或元胞数组。当您在本地计算机上创建数据存储,但需要访问和处理另一台计算机(可能是不同操作系统)上的数据时,请使用 'AlternateFileSystemRoots'。此外,如果您使用 Parallel Computing Toolbox™ 和 MATLAB® Parallel Server™ 处理数据,而数据存储在本地计算机上并且在不同平台云或集群计算机上存储数据副本,则必须使用 'AlternateFileSystemRoots' 关联根路径。
要关联一组等效的根路径,请将
'AlternateFileSystemRoots'指定为字符串数组。例如,["Z:\datasets","/mynetwork/datasets"]
要将在数据存储方面等效的多组根路径关联起来,请将
'AlternateFileSystemRoots'指定为包含多个行的元胞数组,其中每一行代表一组等效的根路径。将元胞数组中的每一行指定为一个字符串数组或字符向量元胞数组。例如:将
'AlternateFileSystemRoots'指定为字符串数组构成的元胞数组。{["Z:\datasets", "/mynetwork/datasets"];... ["Y:\datasets", "/mynetwork2/datasets","S:\datasets"]}也可以将
'AlternateFileSystemRoots'指定为字符向量元胞数组。{{'Z:\datasets','/mynetwork/datasets'};... {'Y:\datasets', '/mynetwork2/datasets','S:\datasets'}}
'AlternateFileSystemRoots' 的值必须满足以下条件:
包含一行或多行,每一行指定一组等效的根路径。
每一行指定多个根路径,每个根路径必须至少包含两个字符。
根路径是唯一的,并且不是彼此的子文件夹。
包含至少一个指向文件位置的根路径条目。
有关详细信息,请参阅Set Up Datastore for Processing on Different Machines or Clusters。
示例: ["Z:\datasets","/mynetwork/datasets"]
数据类型: string | cell
此 属性 为只读。
文件集对象中的文件数,指定为数值标量。
示例: fs.NumFiles
数据类型: double
此 属性 为只读。
从 FileSet 对象读取的文件数,指定为数值标量。
示例: fs.NumFilesRead
数据类型: double
此 属性 为只读。
有关 matlab.io.datastore.FileSet 对象中文件的信息,以 matlab.io.datastore.FileInfo 对象形式返回,具有以下属性:
Filename-FileSet对象中文件的名称。该名称包含文件的完整路径。FileSize- 文件的大小(以字节为单位)。
如需有关特定文件的信息,请指定文件索引。例如,fs.FileInfo(2) 返回第二个文件的文件名和文件大小。如果在指定 (:) 或不指定索引的情况下调用 fs.FileInfo,它将返回所有文件的信息。
示例: fs.FileInfo(2)
对象函数
hasNextFile | 确定文件集中是否有其他文件 |
nextfile | 下一个文件或文件块的信息 |
hasPreviousFile | 确定文件集是否有上一个文件 |
previousfile | 关于文件集中上一个文件的信息 |
progress | 确定已读取多少分块或文件 |
maxpartitions | 最大分区数 |
partition | 划分文件集对象 |
subset | 创建数据存储或 FileSet 的子集 |
reset | 重置文件集对象 |
示例
创建一个文件集并查询文件集中特定文件的信息。
为一组文件创建一个文件集 fs。
folder = {'accidents.mat','airlineResults.mat','census.mat','earth.mat'}folder = 1×4 cell
{'accidents.mat'} {'airlineResults.mat'} {'census.mat'} {'earth.mat'}
fs = matlab.io.datastore.FileSet(folder)
fs =
FileSet with properties:
NumFiles: 4
NumFilesRead: 0
FileInfo: Show FileInfo for all 4 files
AlternateFileSystemRoots: {}
使用 nextfile 函数或通过查询 FileInfo 属性并指定索引来获取特定文件的信息。使用 nextfile 获取连续文件的信息。例如,获取文件集中前两个文件的信息。
file1 = nextfile(fs)
file1 =
1×1 FileInfo
Filename FileSize
_________________________________________________________________________________________________________________ ________
"/mathworks/devel/bat/filer/batfs2566-0/Bdoc25a.2974004/build/runnable/matlab/toolbox/matlab/demos/accidents.mat" 7343
file2 = nextfile(fs)
file2 =
1×1 FileInfo
Filename FileSize
______________________________________________________________________________ __________
"/tmp/Bdoc25a_2974004_1222812/tpf2409a74/matlab-ex98758341/airlineResults.mat" 1.5042e+05
查询 FileInfo 属性以获取有关该文件集中最后一个文件的信息。
lastfile = fs.FileInfo(4)
lastfile =
1×1 FileInfo
Filename FileSize
_____________________________________________________________________________________________________________ ________
"/mathworks/devel/bat/filer/batfs2566-0/Bdoc25a.2974004/build/runnable/matlab/toolbox/matlab/demos/earth.mat" 32522
版本历史记录
在 R2020a 中推出
MATLAB Command
You clicked a link that corresponds to this MATLAB command:
Run the command by entering it in the MATLAB Command Window. Web browsers do not support MATLAB commands.
选择网站
选择网站以获取翻译的可用内容,以及查看当地活动和优惠。根据您的位置,我们建议您选择:。
您也可以从以下列表中选择网站:
如何获得最佳网站性能
选择中国网站(中文或英文)以获得最佳网站性能。其他 MathWorks 国家/地区网站并未针对您所在位置的访问进行优化。
美洲
- América Latina (Español)
- Canada (English)
- United States (English)
欧洲
- Belgium (English)
- Denmark (English)
- Deutschland (Deutsch)
- España (Español)
- Finland (English)
- France (Français)
- Ireland (English)
- Italia (Italiano)
- Luxembourg (English)
- Netherlands (English)
- Norway (English)
- Österreich (Deutsch)
- Portugal (English)
- Sweden (English)
- Switzerland
- United Kingdom (English)