我正在尝试使用 C++ API 读取 HDF5 数据集的名称。对于 H5::Attribute
对象,有一个 getName()
方法。但是,我没有看到 H5:DataSet
对象的类似 getName()
方法。
理想情况下我想这样做:
void Dump(H5::DataSet& ds)
{
cout << "Dataset " << ds.getName() << endl;
// continue to print dataset values
}
我知道 h5dump
可以做到,但简单看一下代码,它只能通过使用 H5Giterate
遍历树来知道它,只有父级知道名称 children ,但 children 不知道自己的名字。
最佳答案
这是基于 Simon 帖子的部分答案。注意名称是一个完整的层级名称,
std::string getName(const H5::DataSet& ds)
{
size_t len = H5Iget_name(ds.getId(),NULL,0);
char buffer[len];
H5Iget_name(ds.getId(),buffer,len+1);
std::string n = buffer;
return n;
}
例子名
"/toplevel/videodata"
关于c++ - 如何通过 C 或 C++ API 获取 HDF5 数据集的名称?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22798731/