我正在尝试使用 C++ API 读取 HDF5 数据集的名称。对于H5::Attribute对象,有一个getName()方法。但是,我没有看到类似getName()的H5:DataSet对象方法。
理想情况下,我想这样做:
void Dump(H5::DataSet& ds)
{
cout << "Dataset " << ds.getName() << endl;
// continue to print dataset values
}
Run Code Online (Sandbox Code Playgroud)
我知道h5dump可以做到,但是简单看一下代码,它只能通过使用 遍历树来知道它H5Giterate,即只有父母知道孩子的名字,而孩子不知道自己的名字。
这是基于西蒙的帖子的部分答案。请注意,名称是完整的分层名称,
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;
}
Run Code Online (Sandbox Code Playgroud)
示例名称
"/toplevel/videodata"
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1798 次 |
| 最近记录: |