fix ZipFileDevice::list

This commit is contained in:
MihailRis 2025-03-17 23:00:36 +03:00
parent 3f3972a952
commit 6286096b57

View File

@ -173,6 +173,20 @@ ZipFileDevice::ZipFileDevice(
entries[entry.fileName] = std::move(entry);
}
for (auto& [name, _] : entries) {
io::path path = name;
while (!(path = path.parent()).pathPart().empty()) {
if (entries.find(path.pathPart()) != entries.end()) {
continue;
}
Entry entry {};
entry.isDirectory = true;
entries[path.pathPart()] = entry;
}
break;
}
for (auto& [_, entry] : entries) {
findBlob(entry);
}
@ -243,6 +257,9 @@ bool ZipFileDevice::exists(std::string_view path) {
}
bool ZipFileDevice::isdir(std::string_view path) {
if (path.empty()) {
return true;
}
const auto& found = entries.find(std::string(path));
if (found == entries.end()) {
return false;