首页
开源
资讯
活动
开源许可证
软件工程云服务
软件代码质量检测云服务
持续集成与部署云服务
社区个性化内容推荐服务
贡献审阅人推荐服务
群体化学习服务
重睛鸟代码扫描工具
登录
注册
代码拉取完成,页面将自动刷新
Watch
26
Star
74
Fork
32
珠海杰理科技
/
fw-AD15N
Fork 仓库
加载中
取消
确认
代码
Issues
204
Pull Requests
0
Wiki
2
统计
更新失败,请稍后重试!
Issues
/
详情
移除标识
内容风险标识
本任务被
标识为内容中包含有代码安全 Bug 、隐私泄露等敏感信息,仓库外成员不可访问
FAQ:关于 FAT文件系统 如何在SDK里获取当前文件的文件序号
待办的
#IASZTF
啟名
创建于
2024-09-23 14:54
### 一、简介 本ISSUE为 FAT文件系统 如何在SDK里获取当前文件的文件序号 ### 二、获取流程 在使用 FAT文件系统 时,获取当前文件的文件序号流程如下: 1、在对应的设备成功挂载fat文件系统 2、使用 vfs_fscan 接口扫描该目录 3、使用 vfs_select 接口选中对应的文件(当前文件序号信息即可保存在扫描句柄里(fsn)); 4、扫描句柄里(fsn)的file_counter即为当前文件的文件序号; !!!注意!!!: 1、第四步的file_counter是与vfs_select接口相互绑定使用的, 用户在打开多个文件的时候若没有在获取前select对应的文件, 可能会出现获取到的文件序号与当前文件不匹配的问题。 2、此外在vfs_ioctl里,部分SDK里提供了可以获取当前文件的文件序号命令操作,这里不建议用户使用该ioctl命令, 因为该命令是相当于直接操作了上面流程的第四步,缺少了第三步vfs_select的搭配使用, 会存在当前文件与获取到的文件序号不匹配的风险。(如下图) ![输入图片说明](https://foruda.gitee.com/images/1727074912575385769/21b05913_10929185.png "屏幕截图") ### 三、示例fat文件系统如何获取当前文件的文件序号 ``` static const char scan_parm_test[] = "-t" "MP1MP2MP3WAVTXT" " -sn -r" ; struct vfscan *fsn_test;//设备扫描句柄 void get_cur_file_num_demo() { /* 1.打开设备,这里举例SD卡设备 */ void *device = dev_open("sd0", NULL); if (device == NULL) { log_info("dev null !!!! \n"); return; } /* 2.挂载fat文件系统 */ static void *pfs = NULL, *pfile = NULL; u32 res = vfs_mount(&pfs, device, "fat"); if (res != 0) { log_info("dev mount error !!! \n"); return; } /* 3.扫描目录下的mp1、mp2、mp3、wav、txt文件,并记录相关信息到扫描句柄fsn_test里 */ fsn_test = vfs_fscan(pfs, "/", scan_parm_test, 9, NULL); /* 4.选中"123.mp3"文件,此时库内部会把该文件的文件序号记录在扫描句柄fsn_test里 */ char path[16] = {"/123.mp3"}; vfs_select(pfs, &pfile, fsn_test, FSEL_BY_PATH, (int)path); /* 5.获取到他的文件序号 */ u32 cur_file_num = fsn_test->file_counter; } ```
### 一、简介 本ISSUE为 FAT文件系统 如何在SDK里获取当前文件的文件序号 ### 二、获取流程 在使用 FAT文件系统 时,获取当前文件的文件序号流程如下: 1、在对应的设备成功挂载fat文件系统 2、使用 vfs_fscan 接口扫描该目录 3、使用 vfs_select 接口选中对应的文件(当前文件序号信息即可保存在扫描句柄里(fsn)); 4、扫描句柄里(fsn)的file_counter即为当前文件的文件序号; !!!注意!!!: 1、第四步的file_counter是与vfs_select接口相互绑定使用的, 用户在打开多个文件的时候若没有在获取前select对应的文件, 可能会出现获取到的文件序号与当前文件不匹配的问题。 2、此外在vfs_ioctl里,部分SDK里提供了可以获取当前文件的文件序号命令操作,这里不建议用户使用该ioctl命令, 因为该命令是相当于直接操作了上面流程的第四步,缺少了第三步vfs_select的搭配使用, 会存在当前文件与获取到的文件序号不匹配的风险。(如下图) ![输入图片说明](https://foruda.gitee.com/images/1727074912575385769/21b05913_10929185.png "屏幕截图") ### 三、示例fat文件系统如何获取当前文件的文件序号 ``` static const char scan_parm_test[] = "-t" "MP1MP2MP3WAVTXT" " -sn -r" ; struct vfscan *fsn_test;//设备扫描句柄 void get_cur_file_num_demo() { /* 1.打开设备,这里举例SD卡设备 */ void *device = dev_open("sd0", NULL); if (device == NULL) { log_info("dev null !!!! \n"); return; } /* 2.挂载fat文件系统 */ static void *pfs = NULL, *pfile = NULL; u32 res = vfs_mount(&pfs, device, "fat"); if (res != 0) { log_info("dev mount error !!! \n"); return; } /* 3.扫描目录下的mp1、mp2、mp3、wav、txt文件,并记录相关信息到扫描句柄fsn_test里 */ fsn_test = vfs_fscan(pfs, "/", scan_parm_test, 9, NULL); /* 4.选中"123.mp3"文件,此时库内部会把该文件的文件序号记录在扫描句柄fsn_test里 */ char path[16] = {"/123.mp3"}; vfs_select(pfs, &pfile, fsn_test, FSEL_BY_PATH, (int)path); /* 5.获取到他的文件序号 */ u32 cur_file_num = fsn_test->file_counter; } ```
评论 (
0
)
啟名
创建了
任务
啟名
修改了
描述
原值
### 一、简介
本ISSUE为 FAT文件系统 如何在SDK里获取当前文件的文件序号
### 二、获取流程
在使用
FAT文件系统 时,获取当前文件的文件序号流程如下:
1、在对应的设备成功挂载fat文件系统
2、使用 vfs_fscan 接口扫描该目录
3、使用 vfs_select 接口选中对应的文件(当前文件序号信息即可保存在扫描句柄里(fsn));
4、扫描句柄里(fsn)的file_counter即为当前文件的文件序号;
注意:
第四步的file_counter是与vfs_select接口相互绑定使用的,用户在打开多个文件的时候若没有在获取前select对应的文件,可能会出现获取到的文件序号与当前文件不匹配的问题
### 三、示例fat文件系统如何获取当前文件的文件序号
```
static const char scan_parm_test[] = "-t"
"MP1MP2MP3WAVTXT"
" -sn -r"
;
struct vfscan *fsn_test;//设备扫描句柄
void get_cur_file_num_demo()
{
/* 打开设备,这里举例SD卡设备 */
void *device = dev_open("sd0", NULL);
if (device == NULL) {
log_info("dev null !!!! \n");
return;
}
/* 挂载fat文件系统 */
static void *pfs = NULL, *pfile = NULL;
u32 res = vfs_mount(&pfs, device, "fat");
if (res != 0) {
log_info("dev mount error !!! \n");
return;
}
/* 扫描目录下的mp1、mp2、mp3、wav、txt文件,并记录相关信息到扫描句柄fsn_test里 */
fsn_test = vfs_fscan(pfs, "/", scan_parm_test, 9, NULL);
/* 选中"123.mp3"文件,此时库内部会把该文件的文件序号记录在扫描句柄fsn_test里 */
char path[16] = {"/123.mp3"};
vfs_select(pfs, &pfile, fsn_test, FSEL_BY_PATH, (int)path);
/* 获取到他的文件序号 */
u32 cur_file_num = fsn_test->file_counter;
}
```
新值
### 一、简介
本ISSUE为 FAT文件系统 如何在SDK里获取当前文件的文件序号
### 二、获取流程
在使用
**FAT文件系统** 时,获取当前文件的文件序号流程如下:
1、在对应的设备成功挂载fat文件系统
2、使用 vfs_fscan 接口扫描该目录
3、使用 vfs_select 接口选中对应的文件(当前文件序号信息即可保存在扫描句柄里(fsn));
4、扫描句柄里(fsn)的file_counter即为当前文件的文件序号;
注意:
第四步的file_counter是与vfs_select接口相互绑定使用的,用户在打开多个文件的时候若没有在获取前select对应的文件,可能会出现获取到的文件序号与当前文件不匹配的问题
### 三、示例fat文件系统如何获取当前文件的文件序号
```
static const char scan_parm_test[] = "-t"
"MP1MP2MP3WAVTXT"
" -sn -r"
;
struct vfscan *fsn_test;//设备扫描句柄
void get_cur_file_num_demo()
{
/* 打开设备,这里举例SD卡设备 */
void *device = dev_open("sd0", NULL);
if (device == NULL) {
log_info("dev null !!!! \n");
return;
}
/* 挂载fat文件系统 */
static void *pfs = NULL, *pfile = NULL;
u32 res = vfs_mount(&pfs, device, "fat");
if (res != 0) {
log_info("dev mount error !!! \n");
return;
}
/* 扫描目录下的mp1、mp2、mp3、wav、txt文件,并记录相关信息到扫描句柄fsn_test里 */
fsn_test = vfs_fscan(pfs, "/", scan_parm_test, 9, NULL);
/* 选中"123.mp3"文件,此时库内部会把该文件的文件序号记录在扫描句柄fsn_test里 */
char path[16] = {"/123.mp3"};
vfs_select(pfs, &pfile, fsn_test, FSEL_BY_PATH, (int)path);
/* 获取到他的文件序号 */
u32 cur_file_num = fsn_test->file_counter;
}
```
啟名
修改了
描述
原值
### 一、简介
本ISSUE为 FAT文件系统 如何在SDK里获取当前文件的文件序号
### 二、获取流程
在使用
**FAT文件系统** 时,获取当前文件的文件序号流程如下:
1、在对应的设备成功挂载fat文件系统
2、使用 vfs_fscan 接口扫描该目录
3、使用 vfs_select 接口选中对应的文件(当前文件序号信息即可保存在扫描句柄里(fsn));
4、扫描句柄里(fsn)的file_counter即为当前文件的文件序号;
注意:
第四步的file_counter是与vfs_select接口相互绑定使用的,用户在打开多个文件的时候若没有在获取前select对应的文件,可能会出现获取到的文件序号与当前文件不匹配的问题
### 三、示例fat文件系统如何获取当前文件的文件序号
```
static const char scan_parm_test[] = "-t"
"MP1MP2MP3WAVTXT"
" -sn -r"
;
struct vfscan *fsn_test;//设备扫描句柄
void get_cur_file_num_demo()
{
/* 打开设备,这里举例SD卡设备 */
void *device = dev_open("sd0", NULL);
if (device == NULL) {
log_info("dev null !!!! \n");
return;
}
/* 挂载fat文件系统 */
static void *pfs = NULL, *pfile = NULL;
u32 res = vfs_mount(&pfs, device, "fat");
if (res != 0) {
log_info("dev mount error !!! \n");
return;
}
/* 扫描目录下的mp1、mp2、mp3、wav、txt文件,并记录相关信息到扫描句柄fsn_test里 */
fsn_test = vfs_fscan(pfs, "/", scan_parm_test, 9, NULL);
/* 选中"123.mp3"文件,此时库内部会把该文件的文件序号记录在扫描句柄fsn_test里 */
char path[16] = {"/123.mp3"};
vfs_select(pfs, &pfile, fsn_test, FSEL_BY_PATH, (int)path);
/* 获取到他的文件序号 */
u32 cur_file_num = fsn_test->file_counter;
}
```
新值
### 一、简介
本ISSUE为 FAT文件系统 如何在SDK里获取当前文件的文件序号
### 二、获取流程
在使用
FAT文件系统 时,获取当前文件的文件序号流程如下:
1、在对应的设备成功挂载fat文件系统
2、使用 vfs_fscan 接口扫描该目录
3、使用 vfs_select 接口选中对应的文件(当前文件序号信息即可保存在扫描句柄里(fsn));
4、扫描句柄里(fsn)的file_counter即为当前文件的文件序号;
注意:
第四步的file_counter是与vfs_select接口相互绑定使用的,用户在打开多个文件的时候若没有在获取前select对应的文件,可能会出现获取到的文件序号与当前文件不匹配的问题
### 三、示例fat文件系统如何获取当前文件的文件序号
```
static const char scan_parm_test[] = "-t"
"MP1MP2MP3WAVTXT"
" -sn -r"
;
struct vfscan *fsn_test;//设备扫描句柄
void get_cur_file_num_demo()
{
/* 打开设备,这里举例SD卡设备 */
void *device = dev_open("sd0", NULL);
if (device == NULL) {
log_info("dev null !!!! \n");
return;
}
/* 挂载fat文件系统 */
static void *pfs = NULL, *pfile = NULL;
u32 res = vfs_mount(&pfs, device, "fat");
if (res != 0) {
log_info("dev mount error !!! \n");
return;
}
/* 扫描目录下的mp1、mp2、mp3、wav、txt文件,并记录相关信息到扫描句柄fsn_test里 */
fsn_test = vfs_fscan(pfs, "/", scan_parm_test, 9, NULL);
/* 选中"123.mp3"文件,此时库内部会把该文件的文件序号记录在扫描句柄fsn_test里 */
char path[16] = {"/123.mp3"};
vfs_select(pfs, &pfile, fsn_test, FSEL_BY_PATH, (int)path);
/* 获取到他的文件序号 */
u32 cur_file_num = fsn_test->file_counter;
}
```
啟名
修改了
描述
原值
### 一、简介
本ISSUE为 FAT文件系统 如何在SDK里获取当前文件的文件序号
### 二、获取流程
在使用 FAT文件系统 时,获取当前文件的文件序号流程如下:
1、在对应的设备成功挂载fat文件系统
2、使用 vfs_fscan 接口扫描该目录
3、使用 vfs_select 接口选中对应的文件(当前文件序号信息即可保存在扫描句柄里(fsn));
4、扫描句柄里(fsn)的file_counter即为当前文件的文件序号;
注意:
第四步的file_counter是与vfs_select接口相互绑定使用的,用户在打开多个文件的时候若没有在获取前select对应的文件,可能会出现获取到的文件序号与当前文件不匹配的问题
###
三、示例fat文件系统如何获取当前文件的文件序号
```
static
const char s
c
an_parm_test[] = "-t"
"MP1MP2MP3WAVTXT"
" -
s
n -r"
;
st
ruct
vfscan *fsn_test;//设备扫描句柄
void
get_cur_file_num_demo()
{
/* 打开设备,这里举例SD卡设备 */
void *device = d
e
v_open("sd0", NULL);
if (device == NULL) {
log_info("dev null !!!! \n");
return;
}
/*
挂载fat文件系统 */
static void *pfs = NULL, *pfile = NULL;
u32
re
s = vfs_mount(&pfs, device, "fat");
if (res != 0) {
log_info("dev mount error !!! \n");
return;
}
/*
扫描目录下的mp1、mp2、mp3、wav、txt文件,并记录相关信息到扫描句柄fsn_test里 */
fsn_test = vfs_fscan(pfs, "/", scan_parm_test, 9, NULL);
/* 选中"123.mp3"文件,此时库内部会把该文件的文件序号记录在扫描句柄fsn_test里 */
char path[16] = {"/123.mp3"};
vfs_select(pfs, &pfile, fsn_test, FSEL_BY_PATH, (int)path);
/* 获取到他的文件序号 */
u32 cur_file_num = fsn_test->file_counter;
}
```
新值
### 一、简介
本ISSUE为 FAT文件系统 如何在SDK里获取当前文件的文件序号
### 二、获取流程
在使用 FAT文件系统 时,获取当前文件的文件序号流程如下:
1、在对应的设备成功挂载fat文件系统
2、使用 vfs_fscan 接口扫描该目录
3、使用 vfs_select 接口选中对应的文件(当前文件序号信息即可保存在扫描句柄里(fsn));
4、扫描句柄里(fsn)的file_counter即为当前文件的文件序号;
!!!注意!!!:
1、第四步的file_counter是与vfs_select接口相互绑定使用的,用户在打开多个文件的时候若没有在获取前select对应的文件,可能会出现获取到的文件序号与当前文件不匹配的问题。
2、此外在vfs_io
c
tl里,部分SDK里提供了可以获取当前文件的文件序号命令操作,这里不建议用户使用该ioctl命令,因为该命令是相当于直接操作了上面流程的第四步,缺少了第三步vfs_select的搭配使用,会存在当前文件与获取到的文件序号不匹配的风险。(如下图)
![输入图片说明](https://foruda.gitee.com/image
s
/1727074912575385769/21b05913_10929185.png "屏幕截图")
###
三、示例fat文件系统如何获取当前文件的文件序号
```
st
atic
const char scan_parm_test[] = "-t"
"MP1MP2MP3WAVTXT"
" -sn -r"
;
struct vfscan *fsn_t
e
st;//设备扫描句柄
void
get_cur_file_num_demo()
{
/* 打开设备,这里举例SD卡设备 */
void *device = dev_open("sd0", NULL);
if
(device == NULL) {
log_info("dev null !!!! \n");
re
turn;
}
/*
挂载fat文件系统 */
static void *pfs = NULL, *pfile = NULL;
u32 res = vfs_mount(&pfs, device, "fat");
if
(res != 0) {
log_info("dev mount error !!! \n");
return;
}
/* 扫描目录下的mp1、mp2、mp3、wav、txt文件,并记录相关信息到扫描句柄fsn_test里 */
fsn_test = vfs_fscan(pfs, "/", scan_parm_test, 9, NULL);
/* 选中"123.mp3"文件,此时库内部会把该文件的文件序号记录在扫描句柄fsn_test里 */
char path[16] = {"/123.mp3"};
vfs_select(pfs, &pfile, fsn_test, FSEL_BY_PATH, (int)path);
/* 获取到他的文件序号 */
u32 cur_file_num = fsn_test->file_counter;
}
```
啟名
修改了
描述
原值
### 一、简介
本ISSUE为 FAT文件系统 如何在SDK里获取当前文件的文件序号
### 二、获取流程
在使用 FAT文件系统 时,获取当前文件的文件序号流程如下:
1、在对应的设备成功挂载fat文件系统
2、使用 vfs_fscan 接口扫描该目录
3、使用 vfs_select 接口选中对应的文件(当前文件序号信息即可保存在扫描句柄里(fsn));
4、扫描句柄里(fsn)的file_counter即为当前文件的文件序号;
!!!注意!!!:
1、第四步的file_counter是与vfs_select接口相互绑定使用的,
用户在打开多个文件的时候若没有在获取前select对应的文件,可能会出现获取到的文件序号与当前文件不匹配的问题。
2、此外在vfs_ioctl里,部分SDK里提供了可以获取当前文件的文件序号命令操作,这里不建议用户使用该ioctl命令,因为该命令是相当于直接操作了上面流程的第四步,缺少了第三步vfs_select的搭配使用,会存在当前文件与获取到的文件序号不匹配的风险。(如下图)
![输入图片说明](https://foruda.gitee.com/images/1727074912575385769/21b05913_10929185.png "屏幕截图")
### 三、示例fat文件系统如何获取当前文件的文件序号
```
static const char scan_parm_test[] = "-t"
"MP1MP2MP3WAVTXT"
"
-sn -r"
;
struct
vfscan *fsn_test;//设备扫描句柄
void get_cur_file_num_demo()
{
/* 打开设备,这里举例SD卡设备 */
void *device = dev_open("sd0", NULL);
if
(device == NULL) {
log_info("dev null !!!! \n");
r
e
turn;
}
/* 挂载fat文件系统 */
static void *pfs = NULL, *pfile = NULL;
u32 res = vfs_mount(&pfs, device, "fat");
if (res != 0) {
log_info("dev mount error !!!
\n");
re
turn;
}
/* 扫描目录下的mp1、mp2、mp3、wav、txt文件,并记录相关信息到扫描句柄fsn_test里 */
fsn_test = vfs_fscan(pfs, "/", scan_parm_test, 9, NULL);
/* 选中"123.mp3"文件,此时库内部会把该文件的文件序号记录在扫描句柄fsn_test里 */
char path[16] = {"/123.mp3"};
vfs_select(
p
fs, &pfile, fsn_test, FSEL_BY_PATH, (int)path);
/* 获取到他的文件序号 */
u32 cur_file_num = fsn_test->file_counter;
}
```
新值
### 一、简介
本ISSUE为 FAT文件系统 如何在SDK里获取当前文件的文件序号
### 二、获取流程
在使用 FAT文件系统 时,获取当前文件的文件序号流程如下:
1、在对应的设备成功挂载fat文件系统
2、使用 vfs_fscan 接口扫描该目录
3、使用 vfs_select 接口选中对应的文件(当前文件序号信息即可保存在扫描句柄里(fsn));
4、扫描句柄里(fsn)的file_counter即为当前文件的文件序号;
!!!注意!!!:
1、第四步的file_counter是与vfs_select接口相互绑定使用的,
用户在打开多个文件的时候若没有在获取前select对应的文件,
可能会出现获取到的文件序号与当前文件不匹配的问题。
2、此外在vfs_ioctl里,部分SDK里提供了可以获取当前文件的文件序号命令操作,这里不建议用户使用该ioctl命令,因为该命令是相当于直接操作了上面流程的第四步,缺少了第三步vfs_select的搭配使用,会存在当前文件与获取到的文件序号不匹配的风险。(如下图)
![输入图片说明](https://foruda.gitee.com/images/1727074912575385769/21b05913_10929185.png "屏幕截图")
### 三、示例fat文件系统如何获取当前文件的文件序号
```
static
const
char
scan_parm_test[]
=
"
-t"
"MP1MP2MP3WAVTXT"
" -sn -r"
;
struct vfscan *fsn_test;//设备扫描句柄
void get_cur_file_num_demo()
{
/*
打开设备,这里举例SD卡设备 */
void *device = dev_open("sd0", NULL);
if
(d
e
vice == NULL) {
log_info("dev null !!!! \n");
return;
}
/* 挂载fat文件系统 */
static void *pfs = NULL, *pfile = NULL;
u32
res = vfs_mount(&pfs, device,
"fat");
if
(
re
s != 0) {
log_info("dev mount error !!! \n");
return;
}
/* 扫描目录下的mp1、mp2、mp3、wav、txt文件,并记录相关信息到扫描句柄fsn_test里 */
fsn_test = vfs_fscan(pfs, "/", scan_parm_test, 9, NULL);
/* 选中"123.m
p
3"文件,此时库内部会把该文件的文件序号记录在扫描句柄fsn_test里 */
char path[16] = {"/123.mp3"};
vfs_select(pfs, &pfile, fsn_test, FSEL_BY_PATH, (int)path);
/* 获取到他的文件序号 */
u32 cur_file_num = fsn_test->file_counter;
}
```
啟名
修改了
描述
原值
### 一、简介
本ISSUE为 FAT文件系统 如何在SDK里获取当前文件的文件序号
### 二、获取流程
在使用 FAT文件系统 时,获取当前文件的文件序号流程如下:
1、在对应的设备成功挂载fat文件系统
2、使用 vfs_fscan 接口扫描该目录
3、使用 vfs_select 接口选中对应的文件(当前文件序号信息即可保存在扫描句柄里(fsn));
4、扫描句柄里(fsn)的file_counter即为当前文件的文件序号;
!!!注意!!!:
1、第四步的file_counter是与vfs_select接口相互绑定使用的,
用户在打开多个文件的时候若没有在获取前select对应的文件,
可能会出现获取到的文件序号与当前文件不匹配的问题。
2、此外在vfs_ioctl里,部分SDK里提供了可以获取当前文件的文件序号命令操作,这里不建议用户使用该ioctl命令,
因为该命令是相当于直接操作了上面流程的第四步,缺少了第三步vfs_select的搭配使用,会存在当前文件与获取到的文件序号不匹配的风险。(如下图)
![输入图片说明](https://foruda.gitee.com/images/1727074912575385769/21b05913_10929185.png "屏幕截图")
### 三、示例fat文件系统如何获取当前文件的文件序号
```
static const char scan_parm_test[] = "-t"
"MP1MP2MP3WAVTXT"
"
-sn -r"
;
struct
vfscan *fsn_test;//设备扫描句柄
void get_cur_file_num_demo()
{
/* 打开设备,这里举例SD卡设备 */
void *device = dev_open("sd0", NULL);
if
(device == NULL) {
log_info("dev null !!!! \n");
r
e
turn;
}
/* 挂载fat文件系统 */
static void *pfs = NULL, *pfile = NULL;
u32 res = vfs_mount(&pfs, device, "fat");
if (res != 0) {
log_info("dev mount error !!!
\n");
re
turn;
}
/* 扫描目录下的mp1、mp2、mp3、wav、txt文件,并记录相关信息到扫描句柄fsn_test里 */
fsn_test = vfs_fscan(pfs, "/", scan_parm_test, 9, NULL);
/* 选中"123.mp3"文件,此时库内部会把该文件的文件序号记录在扫描句柄fsn_test里 */
char path[16] = {"/123.mp3"};
vfs_select(
p
fs, &pfile, fsn_test, FSEL_BY_PATH, (int)path);
/* 获取到他的文件序号 */
u32 cur_file_num = fsn_test->file_counter;
}
```
新值
### 一、简介
本ISSUE为 FAT文件系统 如何在SDK里获取当前文件的文件序号
### 二、获取流程
在使用 FAT文件系统 时,获取当前文件的文件序号流程如下:
1、在对应的设备成功挂载fat文件系统
2、使用 vfs_fscan 接口扫描该目录
3、使用 vfs_select 接口选中对应的文件(当前文件序号信息即可保存在扫描句柄里(fsn));
4、扫描句柄里(fsn)的file_counter即为当前文件的文件序号;
!!!注意!!!:
1、第四步的file_counter是与vfs_select接口相互绑定使用的,
用户在打开多个文件的时候若没有在获取前select对应的文件,
可能会出现获取到的文件序号与当前文件不匹配的问题。
2、此外在vfs_ioctl里,部分SDK里提供了可以获取当前文件的文件序号命令操作,这里不建议用户使用该ioctl命令,
因为该命令是相当于直接操作了上面流程的第四步,缺少了第三步vfs_select的搭配使用,
会存在当前文件与获取到的文件序号不匹配的风险。(如下图)
![输入图片说明](https://foruda.gitee.com/images/1727074912575385769/21b05913_10929185.png "屏幕截图")
### 三、示例fat文件系统如何获取当前文件的文件序号
```
static
const
char
scan_parm_test[]
=
"
-t"
"MP1MP2MP3WAVTXT"
" -sn -r"
;
struct vfscan *fsn_test;//设备扫描句柄
void get_cur_file_num_demo()
{
/*
打开设备,这里举例SD卡设备 */
void *device = dev_open("sd0", NULL);
if
(d
e
vice == NULL) {
log_info("dev null !!!! \n");
return;
}
/* 挂载fat文件系统 */
static void *pfs = NULL, *pfile = NULL;
u32
res = vfs_mount(&pfs, device,
"fat");
if
(
re
s != 0) {
log_info("dev mount error !!! \n");
return;
}
/* 扫描目录下的mp1、mp2、mp3、wav、txt文件,并记录相关信息到扫描句柄fsn_test里 */
fsn_test = vfs_fscan(pfs, "/", scan_parm_test, 9, NULL);
/* 选中"123.m
p
3"文件,此时库内部会把该文件的文件序号记录在扫描句柄fsn_test里 */
char path[16] = {"/123.mp3"};
vfs_select(pfs, &pfile, fsn_test, FSEL_BY_PATH, (int)path);
/* 获取到他的文件序号 */
u32 cur_file_num = fsn_test->file_counter;
}
```
啟名
修改了
描述
原值
### 一、简介
本ISSUE为 FAT文件系统 如何在SDK里获取当前文件的文件序号
### 二、获取流程
在使用 FAT文件系统 时,获取当前文件的文件序号流程如下:
1、在对应的设备成功挂载fat文件系统
2、使用 vfs_fscan 接口扫描该目录
3、使用 vfs_select 接口选中对应的文件(当前文件序号信息即可保存在扫描句柄里(fsn));
4、扫描句柄里(fsn)的file_counter即为当前文件的文件序号;
!!!注意!!!:
1、第四步的file_counter是与vfs_select接口相互绑定使用的,
用户在打开多个文件的时候若没有在获取前select对应的文件,
可能会出现获取到的文件序号与当前文件不匹配的问题。
2、此外在vfs_ioctl里,部分SDK里提供了可以获取当前文件的文件序号命令操作,这里不建议用户使用该ioctl命令,
因为该命令是相当于直接操作了上面流程的第四步,缺少了第三步vfs_select的搭配使用,
会存在当前文件与获取到的文件序号不匹配的风险。(如下图)
![输入图片说明](https://foruda.gitee.com/images/1727074912575385769/21b05913_10929185.png "屏幕截图")
### 三、示例fat文件系统如何获取当前文件的文件序号
```
static const char scan_parm_test[] = "-t"
"MP1MP2MP3WAVTXT"
" -sn -r"
;
struct vfscan *fsn_test;//设备扫描句柄
void get_cur_file_num_demo()
{
/*
打开设备,这里举例SD卡设备 */
void *device = dev_open("sd0", NULL);
if (device == NULL) {
log_info("dev null !!!! \n");
return;
}
/*
挂载fat文件系统 */
static void *pfs = NULL, *pfile = NULL;
u32 res = vfs_mount(&pfs, device, "fat");
if (res != 0) {
log_info("dev mount error !!! \n");
return;
}
/*
扫描目录下的mp1、mp2、mp3、wav、tx
t
文件,并记录相关信息到扫描句柄fsn_test里 */
fsn_test = vfs_fscan(pfs, "/", scan_parm_test, 9, NULL);
/*
选中"123.mp3"文件,此时库内部会把该文件的文件序号记录在扫描句柄fsn_test里 */
char path[16] = {"/123.mp3"};
vfs_select(pfs, &pfile, fsn_test, FSEL_BY_PATH, (int)path);
/*
获取到他的文件序号 */
u32 cur_file_num = fsn_test->file_counter;
}
```
新值
### 一、简介
本ISSUE为 FAT文件系统 如何在SDK里获取当前文件的文件序号
### 二、获取流程
在使用 FAT文件系统 时,获取当前文件的文件序号流程如下:
1、在对应的设备成功挂载fat文件系统
2、使用 vfs_fscan 接口扫描该目录
3、使用 vfs_select 接口选中对应的文件(当前文件序号信息即可保存在扫描句柄里(fsn));
4、扫描句柄里(fsn)的file_counter即为当前文件的文件序号;
!!!注意!!!:
1、第四步的file_counter是与vfs_select接口相互绑定使用的,
用户在打开多个文件的时候若没有在获取前select对应的文件,
可能会出现获取到的文件序号与当前文件不匹配的问题。
2、此外在vfs_ioctl里,部分SDK里提供了可以获取当前文件的文件序号命令操作,这里不建议用户使用该ioctl命令,
因为该命令是相当于直接操作了上面流程的第四步,缺少了第三步vfs_select的搭配使用,
会存在当前文件与获取到的文件序号不匹配的风险。(如下图)
![输入图片说明](https://foruda.gitee.com/images/1727074912575385769/21b05913_10929185.png "屏幕截图")
### 三、示例fat文件系统如何获取当前文件的文件序号
```
static const char scan_parm_test[] = "-t"
"MP1MP2MP3WAVTXT"
" -sn -r"
;
struct vfscan *fsn_test;//设备扫描句柄
void get_cur_file_num_demo()
{
/*
1.打开设备,这里举例SD卡设备 */
void *device = dev_open("sd0", NULL);
if (device == NULL) {
log_info("dev null !!!! \n");
return;
}
/*
2.挂载fat文件系统 */
static void *pfs = NULL, *pfile = NULL;
u32 res = vfs_mount(&pfs, device, "fat");
if (res != 0) {
log_info("dev mount error !!! \n");
return;
}
/*
3.扫描目录下的mp1、mp2、mp3、wav、
t
xt文件,并记录相关信息到扫描句柄fsn_test里 */
fsn_test = vfs_fscan(pfs, "/", scan_parm_test, 9, NULL);
/*
4.选中"123.mp3"文件,此时库内部会把该文件的文件序号记录在扫描句柄fsn_test里 */
char path[16] = {"/123.mp3"};
vfs_select(pfs, &pfile, fsn_test, FSEL_BY_PATH, (int)path);
/*
5.获取到他的文件序号 */
u32 cur_file_num = fsn_test->file_counter;
}
```
展开全部操作日志
折叠全部操作日志
登录
后才可以发表评论
状态
待办的
待办的
进行中
已完成
已关闭
负责人
未设置
标签
未设置
标签管理
里程碑
未关联里程碑
未关联里程碑
Pull Requests
未关联
未关联
关联的 Pull Requests 被合并后可能会关闭此 issue
分支
未关联
分支 (1)
标签 (10)
main
AD1x-4578_AC104-release_v1.8.0
AD1x-457_AC104-release_v1.7.0
ad14n_ad15n_ac104n-release_v1.6.0
ad14n-ad15n-release_V1.5.1
ad14n-ad15n-release_V1.5.0
ad14n-ad15n-release_V1.4.0
ad14n-ad15n-release_V1.3.0
ad14n-ad15n-release_V1.2.2
ad14n-ad15n-release_V1.1.0
ad150-release_V1.0.2
开始日期   -   截止日期
-
置顶选项
不置顶
置顶等级:高
置顶等级:中
置顶等级:低
优先级
不指定
严重
主要
次要
不重要
参与者(1)