mtk磁盘空间检查

来源:互联网 发布:js模块化开发 cmd 编辑:程序博客网 时间:2024/06/05 03:11
 S8 mmi_get_system_driver(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    S8 drive;

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    drive = (S8) FS_GetDrive(FS_DRIVE_V_NORMAL, 2, FS_DRIVE_V_NORMAL);
    if ((drive >= 'A') && (drive <= 'Z'))
    {
        return drive;
    }

    return (S8) 0;
}

MMI_BOOL mmi_pre_momory_check(void)
{
    /*----------------------------------------------------------------*/
    /* Local Variables                                                */
    /*----------------------------------------------------------------*/
    FS_HANDLE fs_ret = FS_NO_ERROR;
    FS_DiskInfo disk_info;
    U32 memory_card_free_space = 0, system_free_space = 0;
    S8 drv_asc[10];
    U16 drv_ucs[10];

    /*----------------------------------------------------------------*/
    /* Code Body                                                      */
    /*----------------------------------------------------------------*/
    memset(drv_asc, 0, sizeof(drv_asc));
    memset(drv_ucs, 0, sizeof(drv_ucs));
 
    sprintf(drv_asc, "%c:\\", mmi_get_removeable_driver());
    mmi_asc_to_wcs(drv_ucs, (PS8) drv_asc);
    fs_ret = FS_GetDiskInfo((kal_uint16*) drv_ucs, &disk_info, FS_DI_BASIC_INFO | FS_DI_FREE_SPACE);
    if (fs_ret >= FS_NO_ERROR)
    {
        memory_card_free_space = disk_info.FreeClusters * disk_info.SectorsPerCluster * disk_info.BytesPerSector;
    }

    memset(drv_asc, 0, sizeof(drv_asc));
    memset(drv_ucs, 0, sizeof(drv_ucs));
    sprintf(drv_asc, "%c:\\", mmi_get_system_driver());
    mmi_asc_to_wcs(drv_ucs, (PS8) drv_asc);
    fs_ret = FS_GetDiskInfo((kal_uint16*) drv_ucs, &disk_info, FS_DI_BASIC_INFO | FS_DI_FREE_SPACE);
    if (fs_ret >= FS_NO_ERROR)
    {
        system_free_space = disk_info.FreeClusters * disk_info.SectorsPerCluster * disk_info.BytesPerSector;
    }

    /* popup "Not enough memory" */
    if ((system_free_space < MMI_JAVA_DOWNLOAD_BLOCK_SIZE)&&(memory_card_free_space < MMI_JAVA_DOWNLOAD_BLOCK_SIZE))
    {
        mmi_display_popup((UI_string_type)GetString(STR_GLOBAL_NOT_ENOUGH_MEMORY), MMI_EVENT_FAILURE);
        return MMI_FALSE;
    }

    return MMI_TRUE;
}

原创粉丝点击