【发布时间】:2010-02-14 17:07:33
【问题描述】:
我有不同分辨率的栅格化地图,其中包含 15K/60K/240K 图片,每个图片大小为 256x256,并且我有可以显示地图的 .NET Compact Framework 应用程序。 但是将 300k 文件复制到 SD 卡需要很长时间,大约需要 35-60 小时(我只复制了 15K,大约需要 2 到 2.5 小时),而且我担心它会破坏 FAT16 文件系统(硬件不支持FAT32,所以我不能将 fat16 切换到 fat32)或者复制后一切都会很慢。
所有图片都是这样存储的:/mapdata/res{resolution}/x{x_coord}/y{y_coord}.png
任何可嵌入的数据库都可以帮助我吗?或者我应该将图像打包到像 /storage/res1/x12.zip 这样的 zip 文件中,并存档所有 y*.png?或者我应该使用所有这些图片创建 ISO 映像,然后将 iso 逐字节复制到 SD 中?
【问题讨论】:
-
所有图片的总文件大小是多少?您是在设备中(通过 USB 连接)时将它们复制到 SD 卡,还是使用读卡器?
-
总大小为 1200MB。我尝试使用外部读卡器、内部读卡器(在笔记本电脑中)和通过 USB 连接的设备复制它们
-
即使使用最慢的可用 SD 卡也不会超过 25 分钟。也许问题在于大量的小文件。尝试创建一个 ZIP 文件,看看复制速度是否更快。
-
@tomlog:是的,小文件的数量是问题所在。并且 zip 文件将被快速复制。这就是我的问题所在。我在问,我应该使用嵌入式数据库,还是应该即时解压缩这些 zip 文件。要显示地图,我需要 4 到 9 个文件(因此其中至少有 2 个来自不同的档案),而且我一切都很快完成了,比如说,在 1/10 秒内,在这 1/10 秒内操作系统应该访问 SD 卡,找到所需的文件夹,找到 2 个存档文件,打开句柄,我的软件应该从该存档中解压缩图像,将它们加载到位图中并在屏幕上显示所有内容。
标签: c# compact-framework filesystems embedded-database