improved zip file

This commit is contained in:
Anton Martynenko
2025-11-20 12:32:56 +01:00
parent bc7998eaf7
commit bf2030e3c6
2 changed files with 13 additions and 7 deletions
@@ -182,13 +182,18 @@ public static class ExtendedRouteTests
Console.WriteLine($" - {path}"); Console.WriteLine($" - {path}");
} }
var pathParts = firstEntry.FullName.Split('/'); if (!firstEntry.FullName.StartsWith("tiles/"))
if (pathParts.Length < 4)
{ {
throw new Exception($"Expected directory structure like '18/158/91/tile_xxx.jpg' but got '{firstEntry.FullName}'"); throw new Exception($"Expected path to start with 'tiles/' but got '{firstEntry.FullName}'");
} }
Console.WriteLine($" ✓ Directory structure preserved (zoom/{pathParts[0]}/x-bucket/{pathParts[1]}/y-bucket/{pathParts[2]}/file)"); var pathParts = firstEntry.FullName.Split('/');
if (pathParts.Length < 5)
{
throw new Exception($"Expected directory structure like 'tiles/18/158/91/tile_xxx.jpg' but got '{firstEntry.FullName}'");
}
Console.WriteLine($" ✓ Directory structure preserved ({pathParts[0]}/zoom/{pathParts[1]}/x-bucket/{pathParts[2]}/y-bucket/{pathParts[3]}/file)");
} }
Console.WriteLine(); Console.WriteLine();
@@ -718,12 +718,13 @@ public class RouteProcessingService : BackgroundService
if (fullPath.StartsWith(normalizedBasePath, StringComparison.OrdinalIgnoreCase)) if (fullPath.StartsWith(normalizedBasePath, StringComparison.OrdinalIgnoreCase))
{ {
entryName = fullPath.Substring(normalizedBasePath.Length + 1); var relativePath = fullPath.Substring(normalizedBasePath.Length + 1);
entryName = entryName.Replace(Path.DirectorySeparatorChar, '/'); relativePath = relativePath.Replace(Path.DirectorySeparatorChar, '/');
entryName = "tiles/" + relativePath;
} }
else else
{ {
entryName = Path.GetFileName(tile.FilePath); entryName = "tiles/" + Path.GetFileName(tile.FilePath);
} }
zipArchive.CreateEntryFromFile(tile.FilePath, entryName, CompressionLevel.Optimal); zipArchive.CreateEntryFromFile(tile.FilePath, entryName, CompressionLevel.Optimal);