KDocs 研发资料库
  • 手表穿戴技术应用文档入口汇总
  • JL707N穿戴客述问题FAQ
  • 彩屏仓 硬件开发指南 与 量产作业流程规范
  • 彩屏仓 AC98N和JL701烧录升级注意事项
  • JL707 硬件开发资料
  • JL707 手表硬件设计注意事项 总结
  • 穿戴生产烧录OTA和key文件添加使用说明
  • JL707N-入门到进阶开发指导文档
  • 彩屏仓982相关
  • 彩屏仓耳机介绍
  • 杰理701_707双屏demo介绍
  • 707电子吧唧开发资料
  • GPIO相关
  • UART串口相关
  • SPI相关
  • nandflash相关
  • norflash相关
  • IIC相关
  • PWM相关
  • SD卡相关
  • 定时器TIMER
  • 文件系统接口设计说明文档
  • 音视频录像开发流程
  • rdec编码器
  • 穿戴功耗数据标准
  • 手表蓝牙开发文档
  • 701蓝牙PAN联网demo
  • BLE开发使用说明
  • 701手表2.0.0版本SDK EQ在线调试和离线调试方法 V1.1
  • JL707 手表喇叭输出声音大小评估方法 V1.0
  • JL707 手表音频EQ调试方法 V1.0
  • AC707N 手表通话写卡 软件配置方法
  • 录音功能
  • 701手表2.X.X系列SDK调试EQ配置方法及音频调试技巧V1.1
  • 701手表104版本SDK EQ在线调试和离线调试方法 V1.1
  • mic2dac示例
  • P11 SensorHub相关
  • 手表升级操作文档
  • AC707NGPU
  • DBI模块介绍
  • GPU模块介绍
  • 701N屏幕驱动配置说明
  • 701N_UI编辑工具用户手册
  • 支付宝资料
  • 支付宝硬件接入资料
  • 支付宝乘车码接入资料
  • CAT1 接入文档
  • 701N_WATCH_CAT1开发说明
  • Findmy功能
  • music模式相关
  • 707电池曲线
  • 707N内置FLASH挂载FAT文件系统251112_v1.2
  • AC707N_本地视频播放demo(AVI-MJPEG-PCM)
  • 光波导屏幕调试
  • 耳机研发和生产流程 指南
  • 707-NandFlash 代码和UI资源独立烧录方案
  • 彩屏仓时间同步补丁
  • 彩屏仓抖音点赞移植
  • 707LVGLv8双屏开发
  • 707N蓝牙互传图传demo
  • AVIPCM数据流接入AIVOICE
  • Flash分区操作demo
  • 手表发射问题
  • 701_707 双备份升级DEMO
  • 707_乘车码刷码失败问题_共性

【Demo】707 fat长文件名fopen_frename

📎 原始文档:https://www.kdocs.cn/l/cfglsqQvPgeU 【Demo】707 fat长文件名fopen/frename

Demo下载

最新版本信息:无
补丁版本信息:无

功能介绍

功能使用说明:

  • 707 fat32文件系统,使用到长文件名格式的参考demo,fopen/frename

资源占用说明:无
涉及工具说明:无

开发流程

开发流程图
硬件接线图
软件修改...
FAT32短命名格式支持8+3,支持长命名,但是需要遵循\U+名称unicode码格式
参考以下demo:

void long_fopen_rename_test()
{
    char path[256] = "storage/virfat_flash/C";
    /* char file_path[128] = {'/','M', 'U', 'S', 'I', 'C', 'h', '/', '\\', 'U', 0x61, 0x0, 0x62, 0x0, 0x63, 0x0, 0x64, 0x0, 0x65, 0x0, 0x66, 0x0, 0X67, 0x0, 0x68, 0x0, 0x69, 0, '/', 0, 't', 'e', 's', 't', '.', 'm', 'p' , '3', 0}; */
    /* char file_path[128] = {'/','M', 'U', 'S', 'I', 'C', '/', '\\', 'U', 0x31, 0x0, 0x32, 0x0, 0x33, 0x0, 0x34, 0x0, 0x35, 0x0, 0x36, 0x0, 0X37, 0x0, 0x38, 0x0, 0x39, 0, '/', 0, '\\', 'U', 0x31, 0x0, 0x32, 0x0, 0x33, 0x0, 0x34, 0x0, 0x35, 0x0, 0x36, 0x0, 0X37, 0x0, 0x38, 0x0, 0x39, 0x0, 0x31, 0, 0x32, 0, 0x33, 0, 0x2E, 0x0, 0x6D, 0x0, 0x70, 0x0, 0x33, 0}; */
    /* char file_path[56] = { '\\', 'U', 0x4B, 0x6D, 0xD5, 0x8B, 0x1B, 0x52, 0xFA, 0x5E, 0x7F, 0x95, 0x87, 0x65, 0XF6, 0x4E, 0x0D, 0x54, 0x2E, 0, 0x6D, 0, 0x70, 0, 0x33, 0, '&', '&', 0xB2, 0xE2, 0xCA, 0xD4, 0xB4, 0xB4, 0xBD, 0xA8, 0xB3, 0xA4, 0xCE, 0xC4, 0xBC, 0xFE, 0xC3, 0xFB, 0, 0}; // 测试创建长文件名.mp3 + '&'+ '&' + GBK */
    /* char file_path[56] = { '\\', 'U', 0x4B, 0x6D, 0xD5, 0x8B, 0x1B, 0x52, 0xFA, 0x5E, 0x7F, 0x95, 0x87, 0x65, 0XF6, 0x4E, 0x0D, 0x54, 0x2E, 0, 0x74, 0, 0x78, 0, 0x74, 0, '&', '&', 0xB2, 0xE2, 0xCA, 0xD4, 0xB4, 0xB4, 0xBD, 0xA8, 0xB3, 0xA4, 0xCE, 0xC4, 0xBC, 0xFE, 0xC3, 0xFB, 0, 0}; // 测试创建长文件名.txt + '&'+ '&' + GBK */
    /* char file_path[56] = { '\\', 'U', 0x4B, 0x6D, 0xD5, 0x8B, 0x1B, 0x52, 0xFA, 0x5E, 0x7F, 0x95, 0x87, 0x65, 0XF6, 0x4E, 0x0D, 0x54, 0x2E, 0, 0x74, 0, 0x78, 0, 0x74, 0}; // 测试创建长文件名.txt */
    char file_path[56] = { '\\', 'U', 0x60, 0x4F, 0x7D, 0x59, 0x40, 0x54, 0x2E, 0, 0x6D, 0, 0x70, 0, 0x33, 0}; //你好呀.mp3
    /* char file_path[56] = {0xB1, 0xA6, 0xB1, 0xA6, 0xBF, 0xDE, 0xC1, 0xCB, 0x2E, 0x74, 0x78, 0x74, 0}; // 测试创建长文件名.txt */
    /* char file_path[] = {'/','\\', 'U', 0xD9, 0x8F, 0x2A, 0x4E, 0x8e, 0x7f, 0x7d,0x59,0x84,0x76,0x1f,0x75,0x3b,0x6d,0x2D,0x00,0x81,0x68,0xE5,0x5D,0x2E, 0x0, 0x6D, 0x0, 0x70, 0x0, 0x33, 0}; // 这个美好的生活-梁工.mp3   */
    /* char file_path[128] = {'/', '\\', 'U', 0xD9, 0x8F, 0x16, 0x4E, 0x4C, 0x75, 0x1F, 0x77, 0x27, 0x59, 0x2D, 0x00, 0x81, 0x68, 0xE5, 0x5D, 0x2E, 0x0, 0x6D, 0x0, 0x70, 0x0, 0x33, 0}; // 123.mp3 */
    // char file_path[128] = {'/', '\\', 'U', 0x31, 0x0, 0x32, 0x0, 0x33, 0x0, 0x34, 0x0, 0x35, 0x0, 0x36, 0x0, 0X37, 0x0, 0x38, 0x0, 0x39, 0x0, 0x31, 0, 0x32, 0, 0x33, 0, 0x2E, 0x0, 0x6D, 0x0, 0x70, 0x0, 0x33, 0};
    memcpy(path + strlen(path), file_path, sizeof(file_path));

    FILE *file = fopen("storage/virfat_flash/C/music123.txt", "w+");
    /* FILE *file = fopen(path, "r"); */
    if (file == NULL) {
        r_printf(">>>[test]:open errrr!!!!!\n");
    }
    fclose(file);
    file = NULL;
    file = fopen("storage/virfat_flash/C/music123.txt", "r");
    int err = frename(file, file_path);
    // int err = frename(file, "3444.txt");
    if (err == 0) {
        y_printf(">>>[test]:okk!!!!!!!!!!!\n");
    } else {
        y_printf(">>>[test]:error!!!!!!!!!!!\n");
    }
    fclose(file);
    file = NULL;
    file = fopen(path, "r");
    if(file == NULL){
        printf("file open err\n");
    }else{
        printf("file open succ\n");
    }
}

image