高级会员

- 积分
- 561
- 金钱
- 561
- 注册时间
- 2017-8-29
- 在线时间
- 89 小时
|
2金钱
问题如标题。
代码:
{
FRESULT result;
DIR Dir;
FILINFO FileInf;
FIL File;
char path[128];
char path1[128];
char dat[128] = {0};
ULONG bw;
ULONG fileSize;
/* 查看文件夹(0:/bin)下所有*.bin文件 */
sprintf(path, "0:/bin");
//打开文件夹
result = f_opendir(&Dir, path);
if(result != FR_OK)
{
CMD_Printf("打开根目录失败 (%d)\r\n", result);
return;
}
//读取当前目录下所有*.bin文件
for(;;)
{
result = f_readdir(&Dir, &FileInf);
if((result != FR_OK) || (FileInf.fname[0] == 0)) break;
if((FileInf.fname[0] == '.')) continue;
//判断是文件还是子目录
if((FileInf.fattrib & AM_DIR) == 0)
{
if((strstr(FileInf.fname, ".bin") != NULL)
|| (strstr(FileInf.fname, ".txt") != NULL))
{
memset(path1, 0, sizeof(path1));
sprintf(path1, "%s/%s", path, FileInf.fname);
CMD_Printf("\r\n%s\t", path1);
//打开文件
result = f_open(&File, path1, FA_READ);
if(result == FR_OK)
{
fileSize = f_size(&File);
CMD_Printf("文件大小:%d(bytes)\r\n", fileSize);
}
//关闭文件
f_close(&File);
}
}
}
return;
}
现象:
.bin文件打印出的文件大小全为0;
.txt文件文件大小正确。
这有什么区别吗?理论上应该所有格式的文件都是能够读出大小。请求帮助呐!!!
|
-
打印现象
最佳答案
查看完整内容[请看2#楼]
你单打开一个bin文件试试,是不是文件指针没处理好
res = f_open(&file, "0:driver.bin", FA_READ);
if (res == FR_OK)
{
//获取驱动文件大小
applenth = f_size(&file);
if (applenth)
{
printf("代码长度:%dBytes\r\n",applenth);
}
}
我测试可以
|