代号One Storage和FileSystem存储空间,可用空间,文件列表和清除空间

时间:2019-01-01 00:27:15

标签: codenameone

在一个Codename One应用程序中,我需要一个区域(供开发人员和测试人员使用)显示:

  • 存储+ FileSystemStorage占用了多少空间;
  • 可用空间(如果没有足够的空间来录制视频或拍照,还可以提醒用户)
  • 存储+ FileSystemStorage中已保存文件的列表;
  • 重置应用程序的选项,同时清除存储和FileSystemStorage。

在Codename One API中,我找到了Storage.getInstance().clearCacheStorage.getInstance().clearStorage(),但是没有找到与FileSystemStorage等效的文件。

我想要一些满足所有这些要求的技巧。谢谢。

1 个答案:

答案 0 :(得分:1)

Storage被管理,因此其访问被缓存。清除文件系统相当于格式化硬盘驱动器...不是人们期望的API。

由于存储是平坦的,因此透明存储的实现非常简单:

    String[] l = listStorageEntries();
    int llen = l.length;
    for(int iter = 0 ; iter < llen ; iter++) {
        deleteStorageFile(l[iter]);
    }

FileSystemStorage使用层次结构,因此这是不切实际的。

FileSystemStoragegetRootAvailableSpace()上有可用空间。请注意,此API可能有点不稳定,因为操作系统并不总是以明确的方式报告存储。移动操作系统的分区方式有很多细微差别,通常Storage会根据其占用的空间映射到第一个根,但是我们不能保证总是如此。

如果目标只是测试,则Android和iOS都提供了一种工具来检查应用在各自的应用设置内占用的总存储量。