我想以编程方式更改与 HDF5 文件中的数据集关联的数据。我似乎找不到一种方法来按名称删除数据集(允许我使用修改后的数据再次添加它)或按名称更新数据集。我正在使用 HDF5 1.6.x 的 C API,但指向任何 HDF5 API 的指针都会很有用。
根据用户指南 https://support.hdfgroup.org/HDF5/doc/UG/HDF5_Users_Guide-Responsive%20HTML5/index.html#t=HDF5_Users_Guide%2FDatasets%2FHDF5_Datasets.htm%3Frhtocid%3Dtoc5.0_2%23TOC_5_5_2_Deleting_a_Dataset:
HDF5 目前不提供一种简单的机制来从文件中删除数据集或回收已删除对象占用的存储空间。
如此简单的删除似乎是不可能的。但本节继续:
删除数据集并回收其使用的空间可以使用H5Ldelete
函数和h5repack http://www.hdfgroup.org/HDF5/doc/RM/Tools.html#Tools-Repack实用程序。随着H5Ldelete
函数,可以从文件结构中删除数据集的链接。删除所有链接后,任何应用程序都无法访问该数据集,并且会从文件中有效删除。恢复未链接数据集占用的空间的方法是将文件的所有对象写入新文件。应用程序无法访问任何未链接的对象,并且不会将其包含在新文件中。将对象写入新文件可以使用自定义程序或使用h5repack
实用程序。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)