private static DecodedPath fromPath(final Path path) {
            LOGGER.trace("Decoding path {}", path);

            // TODO: 16/03/2023 We probably ought to be using Fs(Feed|Type)Dao to map the path part
            //  back to a value understood in stoom. Currently this is only used in orphaned file finder
            //  so we can live with it.

            // This could be a directory in which case there will be no
            final String fileName = path.getFileName().toString();
            final int fileSeparatorIdx = fileName.lastIndexOf(FILE_SEPARATOR_CHAR);
            final String feedName;
            final Long metaId;
            final boolean isDirectory = fileSeparatorIdx == -1;
            if (fileSeparatorIdx != -1) {
                feedName = fileName.substring(0, fileSeparatorIdx);
                final int dotIdx = fileName.indexOf(".");
                final String paddedMetaId = dotIdx != -1
                        ? fileName.substring(fileSeparatorIdx + 1, dotIdx)
                        : null;
                final long id = FsPrefixUtil.dePadId(paddedMetaId);
                metaId = id != -1
                        ? id
                        : null;
            } else {
                feedName = null;
                metaId = null;
            }

            for (int i = path.getNameCount() - 5; i >= 0; i--) {
                if (i + 4 < path.getNameCount() && "store".equals(path.getName(i).toString())) {
                    final String type = path.getName(i + 1).toString();
                    final int year;
                    final int month;
                    final int day;
                    try {
                        year = Integer.parseInt(path.getName(i + 2).toString());
                        month = Integer.parseInt(path.getName(i + 3).toString());
                        day = Integer.parseInt(path.getName(i + 4).toString());
                    } catch (NumberFormatException e) {
                        throw new IllegalArgumentException("Unable to extract date from path " + path, e);
                    }
                    final LocalDate localDate = LocalDate.of(year, month, day);

                    return new DecodedPath(type, localDate, feedName, metaId, isDirectory);
                }
            }
            throw new IllegalArgumentException("Unable to parse path " + path);
        }
The parts of a stream store file/dir paths like
{@code .../default_stream_volume/store/RAW_EVENTS/2022/12/14/TEST_REFERENCE_DATA-EVENTS=414.revt.mf.dat}
or
{@code .../default_stream_volume/store/RAW_EVENTS/2023/03/15/005/TEST_FEED=999999.revt.meta.bgz.yml}
or
{@code default_stream_volume/store/ERROR/2023/02/11/005}
stroom-data/stroom-data-store-impl-fs/src/main/java/stroom/data/store/impl/fs/FsPathHelper.java