public static List<StoreFileInfo> getStoreFiles(StoreFileTracker sft, HRegionFileSystem regionFS,
    String familyName, boolean validate) throws IOException {
    Path familyDir = new Path(regionFS.getRegionDir(), familyName);
    FileStatus[] files = CommonFSUtils.listStatus(regionFS.getFileSystem(), familyDir);
    if (files == null) {
      if (LOG.isTraceEnabled()) {
        LOG.trace("No StoreFiles for: " + familyDir);
      }
      return null;
    }

    ArrayList<StoreFileInfo> storeFiles = new ArrayList<>(files.length);
    for (FileStatus status : files) {
      if (validate && !StoreFileInfo.isValid(status)) {
        // recovered.hfiles directory is expected inside CF path when hbase.wal.split.to.hfile to
        // true, refer HBASE-23740
        if (!HConstants.RECOVERED_HFILES_DIR.equals(status.getPath().getName())) {
          LOG.warn("Invalid StoreFile: {}", status.getPath());
        }
        continue;
      }
      StoreFileInfo info = sft.getStoreFileInfo(status.getPath(), false);
      storeFiles.add(info);

    }
    return storeFiles;
  }
DO NOT USE DIRECTLY. USE {@link SnapshotManifest}. Snapshot v1 layout format - Each region in the
table is represented by a directory with the .hregioninfo file
/snapshotName/regionName/.hregioninfo - Each file present in the table is represented by an empty
file /snapshotName/regionName/familyName/fileName
hbase-server/src/main/java/org/apache/hadoop/hbase/snapshot/SnapshotManifestV1.java